一、准备工作
1、mysql5.7-linux版本安装包
2、连接linux服务器,检查依赖
rpm -qa|grep libaio
rpm -qa|grep net-tools
mysql安装需要这两项依赖,需要先检查是否存在。
新服务器的话,很有可能缺少这两项依赖。
可以通过yum方式安装,若是没有配置yum源,则需要提前下载安装包,通过rpm方式安装。
二、安装步骤
1、上传mysql安装包。
并且创建安装目录,mysql文件夹。
mkdir mysql
2、在mysql 目录里面 解压mysql的压缩包
tar xvf mysql-5.7.17.tar
3 查找Mysql的MariaDB依赖
rpm -qa|grep mariadb
若是有,需要卸载。
rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps
CentOS7默认安装MariaDb,必须要检查是否已经卸载。Rocky 并没有默认安装这个 所以无需要上面的操作
4 依次安装mysql的rpm包(common,libs,client,server)
rpm -ivh mysql-community-common-5.7.17-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.17-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.20-1.el7.x86_64.rpm --force --nodeps
如果安装保错了 linux 安装mysql客户端时提示libncurses.so.5()(64bit) is needed
yum install libncurses*
既可以解决 如果还不行的话 就先忽略 –nodeps 后续去其他地方下载这两个
libtinfo.so.5
libtinfo.so.5
上传到 /usr/lib64
即可解决
mysql5.7的安装包解压后会有很多包,安装这四个即可。
一定要依次安装,顺序不要乱。
5 启动mysql
service mysqld start
6 查找初始密码
vim /var/log/mysqld.log
或者
grep password /var/log/mysqld.log
7、连接mysql
mysql -u root -p
连接之后第一件事是修改密码。
ALTER USER 'root'@'localhost' IDENTIFIED BY Zhouwei520~!
注意:mysql的密码策略无法修改简单的密码,密码必须要包含大小写字母、数字和特殊字符。
8、修改mysql访问权限
首先进入mysql数据库。
use mysql;
然后更改用户的访问权限(%代表任何地址都可以访问)
update user set host='%' where user = 'root';
最后刷新权限缓存,立即生效
flush privileges;
三、可能会遇到的问题:
1、Mysql修改密码。
mysql默认的密码策略,所修改的密码必须要包含大小写字母、数字和字符,过于简单密码无法设置。
密码策略报错问题:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
想要设置简单的密码,需要先修改密码策略。
查看密码策略:
show variables like 'validate_password%'
;
修改策略:
①设置弱口令,修改完后只验证密码长度。
set global validate_password_policy=0
;
②修改密码长度策略
set global validate_password_length=1
注意:validate_password_length参数默认为8,它有最小值的限制,最小值为4,如果你修改validate_password_length的值小于4,尽管不会报错,但validate_password_length的值将设为4。
2、Mysql修改连接数。
部署完成后,使用没多久,发现应用出现无法连接mysql的问题,报出Too many connections的异常信息。
首先连接到mysql:
mysql -u root -p
查看连接数:
show processlist
;
可以发现有很多连接处于sleep状态,这些其实是暂时没有用的,所以可以kill掉,但这太麻烦也解决不了问题。
查看mysql默认的最大连接数:
show variables like "max_connections"
;
显示的结果应该是与上面查询到的连接数相同,才会出现too many connections的情况。
可以通过修改mysql的默认连接数来解决这个问题。
set GLOBAL max_connections=10000
这条命令可以修改最大连接数,但是这只是临时修改,重启后会恢复原来的默认值。
永久修改需要修改配置文件:
vim /etc/my.cnf
编辑mysql的配置文件,增加一行配置:
max_connections=10000
随后保存,退出,重启mysql:
systemctl restart mysqld
时修改,重启后会恢复原来的默认值。
永久修改需要修改配置文件:
vim /etc/my.cnf
编辑mysql的配置文件,增加一行配置:
max_connections=10000
随后保存,退出,重启mysql:
systemctl restart mysqld
重启完成后,问题解决。