No.1. MySQL基本操作
-
CentOS7默认安装mariadb数据库,先将其移除
-
移除命令:sudo yum -y remove mariadb-libs.x86_64
-
下载MySQL源:https://dev.mysql.com/downloads/repo/yum/
-
安装源:sudo yum -y localinstall mysql57-community-release-el7-11.noarch.rpm
-
安装服务端:sudo yum -y install mysql-community-server
-
启动:sudo service mysqld start/restart
-
停止:sudo service mysqld stop
-
查看服务是否启动:ps -ef | grep mysqld
-
查找默认密码:sudo cat /var/log/mysqld.log | grep password
-
登录:mysql -uroot -p默认密码
-
登录后设置密码:SET PASSWORD = PASSWORD('新密码')
-
设置密码过于简单会报错,如果只想设置简单密码,需要修改以下两个参数:
-
set global validate_passowrd_policy=0
-
set global validate_password_length=1
-
效果如下:
- 退出数据库登录:exit 或者\q
- 使用新密码登录:mysql -uroot -proot
- 上面这种方式不够安全,更安全的登录方式如下:
- mysql -uroot -p不输入密码,直接回车,它会提示你输入密码,这样密码就不会以明文显示
- mysql也可以指定需要连接的主机:mysql -h127.0.0.1 -uroot -p
No.2. MySQL数据库开启远程连接
-
先登录数据库:mysql -uroot -proot
-
然后查看数据库:show databases;
-
然后选择mysql:use mysql;
-
然后查看表:show tables;
-
然后查看表user中的内容:select * from user \G; # 其中\G是进行格式化显示的参数
-
我们只需要Host和User这两个字段:select Host, User from user \G; 效果如下:
-
执行update操作,更新字段:
-
update user set Host = '%' where Host = "localhost" and User = "root";
-
其中"%"表示允许所有主机进行登录
-
可以通过重启服务sudo service mysqld restart来刷新权限,也可以通过在登录数据库的状态下使用命令刷新权限:
-
flush privileges
-
如果此时还是不能连接,那就是防火墙的锅了,sudo service firewalld stop
No.3. 开启genelog
-
genelog可以记录所有的sql语句
-
首先进入到数据库:mysql -uroot -proot
-
设置genelog的保存位置:set global general_log_file="/tmp/general.log"
-
开启genelog:set global general_log=on;
No.4. 创建一个新用户
-
登录数据库:mysql -uroot -proot
-
选择mysql数据库: use mysql;
-
创建新用户:create user 'litejie'@'%' identified by 'litejie';
-
如果提示密码不符合要求,使用前面用过的那两个命令:
-
set global validate_password_policy=0
-
set global validate_password_length=1
-
赋予用户权限:
-
grant all privileges on *.* to 'litejie'@'%' identified by 'litejie' with grant option; 其中"*.*"表示赋予用户litejie所有数据库的所有表的操作权限
-
也可以只赋予部分操作权限:查询、插入、更新、删除
-
grant select, insert, update, delete on *.* to 'litejie'@'%' identified by 'litejie' with grant option;
-
收回权限:
-
revoke all privileges on *.* from 'litejie'
No.5. 重置密码
-
编辑配置文件:sudo vim /etc/my.cnf
-
在文件最后添加一行:skip-grant-tables 跳过验证
-
保存并退出
-
重启mysql服务:sudo service mysqld restart
-
此时,直接输入:mysql -uroot -p回车即可登录数据可库
-
选择mysql数据库:use mysql;
-
更新user表:update user set authentication_string=password('root') where User='root';
-
刷新权限:flush privileges;
-
删除掉原先添加进文件/etc/my.cnf中的那行代码:skip-grant-tables
-
重启mysql:sudo service mysqld restart
-
完成密码更新