- 安装 mysql
sudo apt install mysql-server -y
- 运行安全设置脚本
sudo mysql_secure_installation
因此包括步骤:
- 安装验证密码插件
- 设置root密码
- 删除匿名账户
- 禁止root从远程登录
- 删除test数据库
- 刷新权限列表,让设置的规则立刻生效
- 更改用户认证方式
出于对数据库的安全性考虑,Mysql的root用户默认是通过auth_socket插件认证的,使用root用户登录访问,需要更改用户认证的方式,本机进入mysql :
sudo mysql
检查mysql中的用户认证方式:
SELECT user, authentication_string, plugin, host FROM mysql.user;
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | | auth_socket | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *09EBD618590C1E2D294EEEC8B05E0C4E06DDC069 | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
将root用户的auth_socket修改为mysql_native_password
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'tesT_12345';
使用命令mysql -u root -p
,输入密码就可以正常登录mysql了。
- 远程访问mysql
默认情况下,mysql不能远程访问,要启用远程访问,需要修改mysql的配置:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
注释掉:
bind-address = 127.0.0.1
先建用户并授权该用户访问的权限:
CREATE USER 'test'@'%' IDENTIFIED BY 'tesT_123456';
GRANT ALL PRIVILEGES ON *.* TO 'test'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;