一、安装
#检测系统是否自带安装mysql yum list installed | grep mysql #一般情况下centos系统都会自带一个MySQL,所以需要删除系统自带的mysql及其依赖 yum -y remove mysql-libs.x86_64 #下载MySQL官方的rpm文件 wget https://repo.mysql.com//mysql57-community-release-el6-11.noarch.rpm #安装mysql的yum源 rpm -Uvh mysql57-community-release-el6-11.noarch.rpm 或 yum -y localinstall mysql57-community-release-el6-11.noarch.rpm #安装mysql yum -y install mysql-community-server #开启mysql服务 service mysqld start #Mysql安装成功之后,会自动创建root的密码,存储在/var/log/mysqld.log #如果不想使用这个密码的话可以直接选择忘记密码,编辑/etc/my.cnf文件,在[mysqld]下添加skip-grant-tables。 然后直接输入mysql就可以登陆了 #开启远程链接,iptables开放3306端口 vim /etc/sysconfig/iptables
重启防火墙使iptables生效
二、使用
由于加强安全性,MySQL5.7为root用户随机生成了一个密码用该密码登录到服务端后,必须马上修改密码,不然会报如下错误:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
#设置MySQLroot密码 mysql> use mysql; mysql> update mysql.user set authentication_string=password('你填写的密码') where user='root'; #刷新MySQL权限: mysql> flush privileges;
如果只是修改为一个简单的密码,又会报以下错误:(是不是很烦。。。)
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
这个其实与validate_password_policy的值有关。
validate_password_policy有以下取值:
Policy | Tests Performed |
---|---|
0 or LOW |
Length |
1 or MEDIUM |
Length; numeric, lowercase/uppercase, and special characters |
2 or STRONG |
Length; numeric, lowercase/uppercase, and special characters; dictionary file |
因为我只是搭建本地测试环境,所以不想设置太过复杂的密码。
解决办法:
1、查看 mysql 初始的密码策略,
输入语句 “ SHOW VARIABLES LIKE 'validate_password%'; ” 进行查看,
如下图:(我这个是已经修改过的)
2、首先需要设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 即可,
输入设值语句 “ set global validate_password_policy=LOW; ” 进行设值,或者set global validate_password_policy=0;
set global validate_password_policy=0; 或 set global validate_password_policy=LOW;
3、当前密码长度为 8 ,我已经觉得没那么麻烦了,如果想设置更短的,比如设置为 4 位的密码,设置 validate_password_length 的全局参数为 4 即可,” 然后设置密码
set global validate_password_length=4;
如下图:
然后设置简单密码就可以设置成功了。
三、配置远程访问
正常流程
mysql> use mysql; mysql> grant all privileges on 想授权的数据库.* to 'username'@'%'; mysql> FLUSH PRIVILEGES;
此时又出现问题了-.-
怎么肥事,我明明已经修改了安全策略啊
查看一下
没有任何问题,然后又修改了一遍,还是不行,就开始查找答案,结果让人哭笑不得
看到一个博客上提到5.7不支持配置root远程访问
那好吧,我重新创建了一个账号,暂且起名admin吧
'%' - 所有情况都能访问 ‘localhost’ - 本机才能访问 'xxx.xxx.xxx.xxx' - 指定 ip 才能访问 CREATE USER 'username'@'%' IDENTIFIED BY 'password'; #给该用户授权 #赋值权限为all,all 可以替换为 select,delete,update,create,drop grant all privileges on 想授权的数据库.* to 'username'@'%'; flush privileges;
然后远程访问测试,成功连接。