赞
踩
本文介绍MySQL衍生版本Percona-Server-5.7的安装及使用。
CentOS7下建议使用较高版本的Percona-Server!!!
目录
下载Percona-Server-server-57-5.7.32,下载地址如下:https://www.percona.com/downloads/Percona-Server-5.7/
# wget https://downloads.percona.com/downloads/Percona-Server-5.7/Percona-Server-5.7.32-35/binary/redhat/7/x86_64/Percona-Server-5.7.32-35-r5688520-el7-x86_64-bundle.tar
下载成功后解压:
# tar -xvf Percona-Server-5.7.32-35-r5688520-el7-x86_64-bundle.tar
解压后的文件如下:
只需安装其中4个:
Percona-Server-server-57-5.7.32-35.1.el7.x86_64.rpm
Percona-Server-shared-57-5.7.32-35.1.el7.x86_64.rpm
Percona-Server-client-57-5.7.32-35.1.el7.x86_64.rpm
Percona-Server-shared-compat-57-5.7.32-35.1.el7.x86_64.rpm
rpm安装:
# rpm -ivh Percona-Server-server-57-5.7.32-35.1.el7.x86_64.rpm Percona-Server-shared-57-5.7.32-35.1.el7.x86_64.rpm Percona-Server-client-57-5.7.32-35.1.el7.x86_64.rpm Percona-Server-shared-compat-57-5.7.32-35.1.el7.x86_64.rpm
注意:如果目标机器安装过mariadb-libs,那么会它与PerconaMySQL产生冲突,则需要删除mariadb-libs:
# yum -y remove mariadb-libs
删除mariadb-libs后,再执行安装命令:
出现上述信息说明安装成功!
# service mysql start
CentOS7的上如果没有service命令,那么可以直接用systemctl命令替代。
# systemctl start mysql
其他命令语法:systemctl start|stop|restart|status mysql。
执行启动命令后,可以使用ps命令查看mysql进程:
PerconaMySQL通过rpm方式安装后,会自动添加到开机启动项中,如果执行reboot命令重启机器,能直接看到MySQL进程是处于启动状态的。
mysqld进程的日志文件为/var/log/mysqld.log,里面记录的所有的启停过程,及临时密码。
# tail -fn500 /var/log/mysqld.log | grep 'A temporary password is generated for root@localhost';
# mysql -uroot -p临时密码
mysql> set password for root@localhost = password('123456');
如果报错:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements。
密码不符合要求。当然生产环境密码尽可能复杂些,线下自己安装测试可以简单点。
解决办法:
- mysql>set global validate_password_policy=LOW;
-
- mysql>set global validate_password_length=6;
关于 mysql 密码策略相关参数;
1)validate_password_length 固定密码的总长度;
2)validate_password_dictionary_file 指定密码验证的文件路径;
3)validate_password_mixed_case_count 整个密码中至少要包含大/小写字母的总个数;
4)validate_password_number_count 整个密码中至少要包含阿拉伯数字的个数;
5)validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM;
关于 validate_password_policy 的取值:
0/LOW:只验证长度;
1/MEDIUM:验证长度、数字、大小写、特殊字符;
2/STRONG:验证长度、数字、大小写、特殊字符、字典文件;
密码调整后,使用新密码登录。
mysql> show databases;
- mysql> use mysql
- mysql> show tables;
mysql> select Host, User, authentication_string from user;
首先确认3306端口是否开放:
# firewall-cmd --query-port=3306/tcp
如果返回no,则使用如下命令开放3306端口:
# firewall-cmd --permanent --add-port=3306/tcp
之后使用如下命令重启防火墙:
# firewall-cmd --reload
一般情况下都是不允许远程访问的。
使用如下命令允许远程客户端访问mysql:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
其中"*.*"代表所有资源所有权限, “'root'@%”其中root代表账户名,%代表所有的访问地址,也可以使用一个唯一的地址进行替换,只有一个地址能够访问。如果是某个网段的可以使用地址与%结合的方式,如10.0.42.%。IDENTIFIED BY '123456',这个123456是指访问密码。WITH GRANT OPTION允许级联授权。
接着再刷新访问权限表(一定不要忘记,否则不生效):
mysql> FLUSH PRIVILEGES;
然后再使用Navicat、DataGrip等客户端,即可连接mysql。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。