在linux上安装mysql5.7时,遇到了很多问题,网上好多资料都不全,有的还是错误的,所以自己记录下正确的安装步骤以及注意事项
CentOS7.9安装mysql5.7
一.安装MySQL
1.下载MySQL官方的Yum Repository
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
2.安装Yum Repository
yum -y install mysql57-community-release-el7-10.noarch.rpm
3.在线安装MySQL
yum -y install mysql-community-server
在执行这条命令时,报了如下的错误
原因是Mysql的GPG升级了,需要重新获取
使用下面的命令即可
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
然后重新执行安装命令即可
yum -y install mysql-community-server
4.卸载Yum Repository
由于每次 yum 操作都会自动更新,需要把这个卸载掉
yum -y remove mysql57-community-release-el7-10.noarch
到此为止,MySQL使用yum安装工作就告一段落了,
二.配置MySQL
1. 查看MySQL状态
systemctl status mysqld.service
2.启动MySQL
systemctl start mysqld.service
3. 登录MySQL
此时MySQL已经开始正常运行,不过想要登录MySQL还得先找出此时root用户的密码
grep "password" /var/log/mysqld.log
初始密码:1S?h=:OZb
4.修改root密码
mysql -u root –p
5.开启MySQL远程访问
执行以下命令开启远程访问限制(注意:下面命令开启的是%代表所有用户,如要开启某一个IP,用IP代替%
grant all privileges on *.* to 'root'@'%' identified by 'MySQL%57' with grant option;
这里包了一个错,错误代码是1819
错误原因:
MySQL对设置密码进行了默认的限制,这是因为密码过于简单导致的(推荐:密码设置包含大小写字母、数字和特殊字符
)
解决办法:
进入MySQL(前提是validate_password插件
必须已经安装,从5.7版本开始默认安装)
步骤一:修改validate_password_policy参数的值
set global validate_password_policy=0; #policy = 0,仅限制密码的长度
步骤二:查看默认密码的长度
select @@validate_password_length;
步骤三:修改默认密码的长度(这里修改为4)
set global validate_password_length=4;
步骤四:再次查看密码长度
然后重新执行远程访问的命令
grant all privileges on *.* to 'root'@'%' identified by 'MySQL%57' with grant option;
6.在防火墙中添加3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
我的防火墙是关的,所以这一步省略
7.修改配置文件
登录MySQL
mysql -u root -p //输入自己设置的密码
输入status,发现服务器的字符编码是latin1
需要在MySQL的配置文件my.cnf中将字符编码修改为utf8
使用vim打开my.cnf文件,新增以下四行代码
[client]
default-character-set=utf8
character-set-server=utf8
collation-server=utf8_general_ci
保存my.cnf后,重启MySQL,再次查看status
8.远程连接MySQL
阿里云ECS服务器需要添加安全组规则,开启3306端口才可以远程连接MySQL
使用Navicat测试,连接成功