一、环境
- 本系统选用的是CentOS Linux 7.4版本。查看linux版本信息可以执行命令cat /etc/redhat-release即可。
- 选用的数据库版本是MySQL版本:7.20,5.7版本的暗账与该版本以下的版本有所不同。
- 安装方式:这里使用yum方式来下载mysql包。
二、安装步骤及配置
1. 配置Yum repository
从MySQL官网找到你要的库文件,获取链接,然后下载到本地:
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
添加repository命令:
sudo yum localinstall mysql57-community-release-el7-11.noarch.rpm
检查是否配置成功:
yum repolist enabled | grep "mysql.*-community.*"
2. 安装MySQL
sudo yum install mysql-community-server
3. 启动MySQL服务和查看启动状态
sudo service mysqld start sudo service mysqld status
三、 配置
1. 修改密码
安装程序会自动创建一个超级用户’root’@’localhost,密码在错误日志里,可以用下面命令获得:
sudo grep 'temporary password' /var/log/mysqld.log
查看临时密码:
grep "password" /var/log/mysqld.log
利用刚才的密码登录:
mysql -uroot –p
2. 进行重置密码
mysql> set password=password('123456'); 或者 mysql> ALTER USER USER() IDENTIFIED BY '123456';
错误问题分析:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
其原因是:为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,关于error log的位置,如果安装的是rpm包,则默认是 /var/log/mysqld.log 。可通过 grep “password” /var/log/mysqld.log 命令获取MySQL的临时密码,用该密码登录到服务端后,必须马上修改密码,不然会报如下错误:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
如果只是修改为一个简单的密码,会报以下错误:
这个错误的原因其实与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,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
有时候,只是为了自己测试,不想把密码设置的那么复杂,譬如说,我只想设置root的密码为123456,必须修改两个全局参数。
首先,修改validate_password_policy参数的值:
mysql> set global validate_password_policy=0;
其次,修改validate_password_length参数的长度。上面的在修改密码时,如果密码设置为123456,就会报错,是因为密码长度小于8了。安装完数据库后,系统默认validate_password_length的长度为8,查看validate_password_length的参数可以执行:
mysql> select @@validate_password_length;
注:validate_password_length参数默认为8,它有最小值的限制,最小值为:4。如果你显性指定validate_password_length的值小于4,尽管不会报错,但validate_password_length的值将设为4。
修改validate_password_length参数的值:
mysql> set global validate_password_length=6;
到此,数据库mysql5.7已经安装,并修改密码完成了。
四.开启外部访问权限
此时,数据库仅能被本机访问,外部访问时会提示该主机不允许连接MySQL服务器:
原因是MySQL默认限制了现有用户允许localhost才能访问。
解决方法是创建允许其它主机访问的权限:
grant all privileges on *.* to 'root'@'%' identified by '123456';
注:root代表root用户,最后的123456代表root用户的密码,%代表所有的ip地址都能远程访问,这里的root和密码是本操作系统里面的mysql的用户名和密码。
其它信息
/etc/my.cnf
mysql的主配置文件
/var/lib/mysql
mysql数据库文件存放位置
/var/log
mysql日志输出存放目录
更多关于linux常用命令的操作请看https://ms200.cn/?p=257。
原创文章,作者:Ferrycoln,如若转载,请注明出处:https://ms200.cn/archives/594