安装myql
# 使用apt-get命令安装MySQL
apt-get install mysql-server
apt-get install mysql-server
看到这个界面说明mysql已经安装成功。
# 启动mysql服务
systemctl start mysql
# 设置开机自动启动MySQL服务
systemctl enable mysql
# 查看mysql服务状态
systemctl status mysql
systemctl start mysql
配置mysql
我们在Mac或者windows上安装Mysql时会有一些配置:
- 比如账号密码;
- 那我们在Linux上安装Mysql之后,如何配置账号密码呢? 配置Mysql账号和密码:
mysq1_ secure. installation
# 接下来有一些选项,比如密码强度等等- 些
# MySQL8开始通常设置密码强度较强,选择2
# 其他的选项可以自行选择
提示我“密码验证组件将被应用于测试密码提高安全性,它将检测密码长度并且只允许设置足够安全的密码,你是否要设置密码验证组件?”。我们输入y表示继续
这里提示选择密码强度类型,我选择2高强度的密码类型(因为Mysql8强烈推荐使用高强度的密码)
到了下一步,发现过程有点和我的预期。
跳过了root用户的密码设置,默认使用的是auth_socket鉴权方式。如果需要设置密码来进行替代,请在完成之后使用"ALTER_USER"命令。
这。。。好吧,我只能继续下一步,等到操作完成之后再进行root用户的密码设置
请注意上图红框部分
通常,root账号只允许通过'localhost'进行连接,这保证了它不会被互联网的人员猜中密码。 是否禁止远程登录root账号?
后期我要使用Navicat等工具连接Mysql,所以这里选择了n。由于此时Mysql没有设置密码,密令行输入mysql之后便可直接连接到数据库。
# 查询user表的用户、网络节点、及密码插件
select user, host, plugin from mysql.user where user='root';
看到root账号使用的密码插件是auth_socket,需要修改为原生密码插件
# 修改root账号的密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';
# 注意:需要将'new_password'替换为你的密码
再次查询root的密码插件,发现已经修改为mysql_native_password密码插件了。
这里还需要将"host"修改为"%",这样才能进行远程登录,不然的话只有服务器自己才能练级数据库。
# 修改mysql中root用户允许登录的网络节点限制
update user set host='%' where user = 'root';
# 配置生效
FLUSH PRIVILEGES;
然后我们需要重启一下mysql服务
# 停止服务
systemctl stop mysql;
# 启动服务
systemctl status mysql;
原本我以为到这里就可以使用Navicat连接Mysql了,没想到未能成功。
网上查了资料,发现是mysql配置文件mysqld.cnf中关于bind-address的设置问题,默认设置为127.0.0.1 我们需要把这行代码修改为0.0.0.0 或者干脆注释掉。
我的mysql配置文件位于/etc/mysql/mysql.conf.d,不同版本的mysql有可能配置文件的路径不一样,但是一般都是在/etc/mysql/目录下,大家可以找找看。
将这两行代码注释之后,再次重启mysql服务,这下Navicat就能远程连接Mysql了