- 环境:
CentOS 7
MySql 8
Navicat 12
一、在服务器上安装MySql
- yum仓库下载MySql:
sudo yum localinstall https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm
- yum安装MySql:
sudo yum install mysql-community-server
- 启动MySql服务:
sudo service mysqld start
- 检查MySql服务状态:
sudo service mysqld status
- 查看初始密码(如无内容直接跳过):
sudo grep 'temporary password' /var/log/mysqld.log
- 注:按照上面的步骤安装肯定会有初始密码的,如果没有显示可以编辑/var/log/mysqld.log文件查看以下是否有内容。
- MySql登录:
mysql -uroot -p
回车后要输入密码,密码就是第五步查询的零时密码。
- 修改root登录密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码';
- 其中‘密码‘就是你随意输入的密码,但这里有个坑,mysql5.7.6以后废弃了user表中的passqword字段和password()方法,用authentication_string替代password。所以凡是利用password和password()修改密码的都不正确。
- 还有就是用临时密码登录后,必须马上修改密码,不然会报错:
mysql> select user();
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
- 如果只是修改一个简单的密码,会报以下错误:
mysql> ALTER USER USER() IDENTIFIED BY '123456';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
- 这也是一个坑,mysql8.0以上密码策略限制必须要有大小写字母加数字和特殊符号,长度必须是八位以上。
- 设置密码的语句如下:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码(必须包含:数字大小写字母特殊字符)';
- 测试密码是否设置成功:
输入quit退出mysql,重新执行2步骤,输入新密码登录。
二、远程连接授权
有兴趣的同学可以去看一下官方的远程授权说明。
- 重点:MySql安装完成后只支持localhost访问。我们必须设置一下才可以远程访问。
-
又是一个坑,在网上找的大多数命令,你会发现输入后会报错,如下:
- 所以我给一个简单的方法,我也是安装了四五遍才找到的方法。
可以执行如下命令修改远程连接权限:
mysql> update user set host = "%" where user='root';
然后在查看用户权限:
select host, user, authentication_string, plugin from user;
你会发现,root的host字段变成了’%‘,这就说明可以进行远程连接了。
三、本地Navicat远程连接mysql
Navicat连接远程mysql8.0会有问题,这也是一个坑。
- 如果你的Navicat版本较新经过以上步骤应该能连接上,连接时主机名或IP地址填你服务器的公网IP,用户名默认root,密码自己设置的。
- 如果你的Navicat版本较低,就会比较麻烦,篇幅较多我就不详写了,可以参考https://blog.csdn.net/jinhaijing/article/details/83421189解决。