ps:此随笔基于mysql 5.7.*版本。
准备
- net start mysql
启动MySQL服务 - net stop mysql
关闭MySQL服务 - mysql [-h
- exit/quit
退出MySQL
注:MySQL的提示符是:mysql> 。MySQL命令结束使用”;”或是”\G”。
已知root账户密码进行登录
格式:mysql [-h地址] [-p端口] -u用户名 -p密码
省略不写地址或端口则自动使用默认。(地址:localhost;端口:3306)
两种方式进行登录。方式1:
方式2:
忘记root账户密码进行登录(修改root密码)
- 以管理员身份打开一个cmd。
- 检查MySQL服务是否启动,若已启动则先将其停止服务,输入命令:net stop mysql,回车。
- 输入命令:E:,回车,再次输入:cd MySQL\MySQL Server 5.7\bin,切换至mysql安装目录的bin目录下。输入命令:mysqld –defaults-file=”E:\MySQL\MySQL_Data\my.ini” –console –skip-grant-tables,回车。
该命令通过跳过用户权限安全检查,开启MySQL服务,这样连接MySQL时,可以不用输入密码。此时已经开启MySQL服务,保留这个cmd窗口。
注:这里笔者修改了MySQL配置文件my.ini中basedir和datadir各自的路径。
- 同样使用管理员身份,另起一个cmd窗口,尝试连接MySQL。输入命令:mysql -uroot -p,回车,随后出现:Enter password:,这里不用输入密码,直接回车,出现登录成功的信息。
- 执行命令来重置root账户密码:update mysql.user set authentication_string=password(‘新密码’) where user=’root’;,回车。
- 刷新权限。输入命令:flush privileges;,回车。
- 然后退出,重新登录。输入命令:quit或exit,回车。
- 此时关闭之前的cmd窗口。执行命令来启动MySQL服务:net start mysql,回车。
- 再次尝试连接mysql。输入命令:mysql -uroot -p,回车。出现输入密码提示,输入新密码即可登录。
- 至此,忘记root账户密码问题解决。
数据库操作
- show databases;
查看所有的数据库,等同于select schema_name from information_schema\G;(注:\G以纵向 报表的形式输出结果,有利于阅读) - create database
- use
- select database();/status;
查看当前使用的数据库 - drop database
- alter database 数据库名 character set
表操作
注:操作表之前应使用”use
- show tables [from
- desc/describe
- show create table
- create table
- create table
- rename table
- alter table
- alter table
- alter table
- alter table
- alter table
- alter table
- alter table
- alter table
- alter table
- alter table
- drop table
- insert into
- delete from
- delete from
- update
- select * from
- select [distinct]
用户和权限管理
- create user ‘用户名’@’IP地址|域名|%|localhost’ [identified by ‘密码’];(注:%代表通配符,允许客户端以任何IP访问,localhost代表只能通过本机进行登录。如果既有字母,又有数字,则不进行匹配(防止恶意访问))
单独创建用户 - grant
- select user();
查看当前登录用户 - show grants;
查看当前用户权限 - show grants for ‘用户名’@’IP地址|域名|%|localhost’;
查看某个用户的权限 - rename user ‘旧用户名’@’IP地址|域名|%|localhost’ to ‘新用户名’@’与前者相同’;
重命名用户 - upadte mysql.user set authentication_string=pasword(‘新密码’) where user=’用户名’ and host=’IP地址|域名|%|localhost’;
修改用户密码 - flush privileges;
刷新权限 - revoke
- drop user ‘用户名’@’IP地址|域名|%|localhost’;
删除用户
注:每当调整权限之后需要使用flush privileges;命令刷新更改的权限设置
查询数据库运行状态
- show status like ‘%Aborted_connects%’;
查询由于客户端尝试连接,而被MySQL拒绝的连接次数 - show status like ‘%Threads_connected%’;
查询当前打开的连接数量 - show status like ‘Qcache%’;
查询缓存情况 - show variables like ‘log_bin’;
查询是否启用binlog日志
备份与恢复
- mysqldump [-h
- mysqldump [-h
- mysqldump [-h
- mysqldump [-h
- mysqldump [-h
- mysqldump [-h
- mysqldump [-h
- mysqldump [-h
内置函数
数学函数
- ABS(x):绝对值
- SIGN(x):返回x的符号,x是负数、0、整数分别返回-1、0、1
- CEIL()/CEILING(x):向上取整
- FLOOR(x):向下取整
- ROUND(x):四舍五入取整
- MOD(x,y):求余操作(x mod y等同于x%y)
- LOG(x):返回自然对数(以e为底的对数)
- LOG10(x):返回以10位为底的对数
- PI():获取圆周率
- POW(x,y):乘方操作(x^y)
- SQRT(x):返回x的平方根
- RAND():返回0~1的随机数
- TRUNCATE(x,y):返回数值x保留到小数点后y位的值(与ROUND最大的区别是不会进行四舍五入)
- SIN(x):正弦值(参数是弧度)
- COS(x):余弦值(参数是弧度)
- RADIANS(x):将角度转换为弧度
- DEGRESS(x):将弧度转换为角度
日期时间函数
- NOW()/CURRENT_TIMESTAMP()/LOCALTIME()/SYSDATE()/LOCALTIMESTAMP():返回当前日期和时间
- CURDATE/CURRENT_DATE():返回当前日期
- CURTIME()/CURRENT_TIME():返回当前时间
- TIME_TO_SEC(t):将时间t转换为秒
- SEC_TO_TIME(t):将以秒为单位的时间s转换为时分秒的格式
- DATEDIFF(D1,D2):计算日期d1->d2之间相隔的天数
- ADDDATE(d,n):计算起始日期d加上n天的日期
- SUBDATE(d,n):日期d减去n天后的日期
- ADDDATE(d,INTERVAL expr type):计算起始日期d加上一个时间段后的日期
- SUBDATE(d,INTERVAL expr type):日期d减去一个时间段后的日期
字符串函数
- CHAR_LENGTH(s):返回字符串s的字符数
- CONCAT(s1,s2,…):将字符串s1,s2等多个字符串合并为一个字符串
- CONCAT_WS(x,s1,s2):同CONCAT(s1,s2,…)函数,但是每个字符串之间要加上x(x作为分隔符)
- UPPER(s)/UCAASE(s):将字符串s的所有字母变成大写字母
- LOWER(s)/LCASE(s):将字符串s的所有字母变成小写字母
- LEFT(s,n):返回字符串s的前n个字符
- RIGHT(s,n):返回字符串s的后n个字符
- TRIM(s):去掉字符串s开始和结束处的空格
- TRIM(s1 FROM s):去掉字符串开始出和结尾处的字符串s1
- REPEAT(s,n):将字符串s重复n次
- REPLACE(s,s1,s2):将字符串s2替换字符串s中的字符串s1
- STRCMP(s1,s2):比较字符串s1和s2
聚合函数
- COUNT():用来统计记录的条数
- SUM():求和
- AVG():求平均值
- MAX():求最大值
- MIIN():求最小值
条件判断函数
- IF(expr,v1,v2):如果表达式expr成立,返回结果v1;否则,返回结果v2
- IFNULL(v1,v2):如果v1的值不为NULL,则返回v1;否则,返回v2
- CASE
系统信息函数
- VERSION():返回数据库的版本号
- USER()/SYSTEM_USER()/SESSION_USER()/CURRENT_USER()/CURRENT_USER:返回当前用户
- CONNECTION_ID():返回服务器的连接数
其他常用函数
- BIN(x):返回x的二进制编码
- OCT(x):返回x的八进制编码
- HEX(x):返回x的十六进制编码
其他
- show warnings;
查看SQL执行时的警告
Original: https://www.cnblogs.com/vgshots/p/16620969.html
Author: vgshots
Title: MySQL学习(3)—MySQL常用命令
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/611967/
转载文章受原作者版权保护。转载请注明原作者出处!