一、安装YUM Repo
1、由于CentOS7 的yum源中没有mysql,需要到mysql的官网下载yum repo配置文件。
下载命令:
#国外:
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
#国内:
wget -O CentOS-Base.repo https://lug.ustc.edu.cn/wiki/_export/code/mirrors/help/centos?codeblock=3
2、然后进行repo的安装:
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
执行完成后会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo mysql-community-source.repo
二、安装前检查
2.1
执行安装命令前,先执行查询命令
rpm -qa|grep libaio
如果存在libaio包如下:
rpm -qa|grep net-tools
如果存在net-tools包如下:
如果不存在需要到centos安装盘里进行rpm安装
2.2 检查是否安装了其他版本的mysql:
yum方式
查看yum是否安装过mysql
yum list installed mysql*
yum卸载
根据列表上的名字
yum remove mysql-community-client mysql-community-common mysql-community-libs mysql-community-libs-compat mysql-community-server mysql57-community-release
rm -rf /var/lib/mysql
rm /etc/my.cnf
rpm查看安装
rpm -qa | grep -i mysql
rpm 卸载
rpm -e mysql57-community-release-el7-9.noarch
rpm -e mysql-community-server-5.7.17-1.el7.x86_64
rpm -e mysql-community-libs-5.7.17-1.el7.x86_64
rpm -e mysql-community-libs-compat-5.7.17-1.el7.x86_64
rpm -e mysql-community-common-5.7.17-1.el7.x86_64
rpm -e mysql-community-client-5.7.17-1.el7.x86_64
cd /var/lib/
rm -rf mysql/
清除余项
whereis mysql
mysql: /usr/bin/mysql /usr/lib64/mysql /usr/local/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
#删除上面的所有文件夹
rm -rf /usr/bin/mysql
....
删除配置
删除上一个mysql的配置文件
三、使用yum命令完成安装
注意:必须进入到 /etc/yum.repos.d/目录后再执行以下脚本
1、安装命令:
yum install mysql-server
2、启动msyql:
systemctl start mysqld #启动MySQL
#附加:查看状态,停止,重启
systemctl status mysqld.service
systemctl stop mysqld.service
systemctl restart mysqld.service
3、获取安装时的临时密码(在第一次登录时就是用这个密码):
grep 'temporary password' /var/log/mysqld.log
4、倘若没有获取临时密码,则
4.1、删除原来安装过的mysql残留的数据
rm -rf /var/lib/mysql
4.2.再启动mysql
systemctl start mysqld #启动MySQL
四、登录
1、初次登录
mysql -u root -p获取的临时密码
2、无法登录,则进行以下配置,跳过登录验证
2.1、重置密码的第一步就是跳过MySQL的密码认证过程,方法如下:
vim /etc/my.cnf(注:windows下修改的是my.ini)
在文档内搜索mysqld定位到[mysqld]文本段:
/mysqld(在vim编辑状态下直接输入该命令可搜索文本内容)
在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程,如下图所示:
2.4、接下来我们需要重启MySQL:(不重启配置不生效)
其他:
关闭密码验证:vim /etc/my.cnf,添加一行语句: validate_password=OFF
,保存退出
五、登录成功后修改密码
1、注意:这里会进行密码强度校验(密码设置时必须包含大小写字母、特殊符号、数字,并且长度大于8位)
2、如不满足以上条件则会报错,如下图:
密码策略问题异常信息:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
3、解决办法:
3.1、查看 mysql 初始的密码策略,
输入语句 “ SHOW VARIABLES LIKE 'validate_password%';
” 进行查看,
如下图:
3.2、首先需要设置密码的验证强度等级,设置 validate_password_policy
的全局参数为 LOW 即可,
使用以下语句进行设置:
set global validate_password_policy=LOW;
3.3、默认密码长度为 8 ,我个人喜欢4位密码,设置 validate_password_length 的全局参数为 4 即可,
使用以下语句进行设置:
set global validate_password_length=6;
3.4、现在可以为 mysql 设置简单密码了,只要满足4位的长度即可,
输入修改语句
ALTER USER 'root'@'localhost' IDENTIFIED BY '1234';
可以看到修改成功,表示密码策略修改成功了!!!
3.5、注:在默认密码的长度最小值为 4 ,由 大/小写字母各一个 + 阿拉伯数字一个 + 特殊字符一个,
只要设置密码的长度小于 3 ,都将自动设值为 4 ,
3.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
:验证长度、数字、大小写、特殊字符、字典文件;
6)validate_password_special_char_count
整个密码中至少要包含特殊字符的个数;
六、修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newPassword';
七、开启远程控制
MySQL默认是没有开启远程控制的,必须添加远程访问的用户,即默认是只能自己访问,别的机器是访问不了的。
1.1、连接服务器(登录): mysql -u root -p
1.2、看当前所有数据库:show databases;
1.3、进入mysql数据库:use mysql;
1.4、查看mysql数据库中所有的表:show tables;
1.5、查看user表中的数据:select Host, User,authentication_string from user;
1.6、修改user表中的Host: `
update user set Host='%' where User='root';`
#这里只对root用户设置了远程控制
说明: % 代表任意的客户端,可替换成具体IP地址。
1.7、最后刷新一下:flush privileges;
八、其他配置
1、设置安全选项:
mysql_secure_installation
2、设置开机启动
systemctl enable mysqld
3、关闭开机启动
systemctl disable mysqld
4、配置默认编码为utf8:
4.1、修改配置文件
vim /etc/my.cnf
在最后加上中文字符集配置:
character_set_server=utf8
init_connect='SET NAMES utf8'
4.2、重新启动mysql
4.3、已生成的库表字符集如何变更
修改数据库的字符集
alter database mydb(数据库名称) character set 'utf8';
修改数据表的字符集
alter table mytbl(表名称) convert to character set 'utf8';
其他默认配置文件路径:
配置文件:/etc/my.cnf
日志文件:/var/log//var/log/mysqld.log
服务启动脚本:/usr/lib/systemd/system/mysqld.service
socket文件:/var/run/mysqld/mysqld.pid
5、查看版本
select version();
6.在linux下查看安装目录
ps -ef|grep mysql
九、相关问题
9.1:Job for mysqld.service failed because the control process exited with error code. See “systemctl status mysqld.service” and “journalctl -xe” for details.
出现的问题:
mysql服务启动失败
解决建议:
检查/etc/my.cnf
的配置是否有误,检查配置的对应文件是否存在
我遇到的问题:
mysql.pid 文件不存在导致service mysqld start 失败
解决:
1.到提示报错的mysql.pid 不存在的目录下 比默认的/var/run/mysqld/
使用 touch 命令创建mysql.pid文件。 touch mysql.pid
[root@MyLinux run]# vim /etc/my.cnf
[root@MyLinux run]# cd /var/run/mysqld/
[root@MyLinux mysqld]# touch mysql.pid
2.vim mysql.pid 在里面随便输入一个数字(它表示一个进程id,比如3306) 保存退出 (如果还有错,修改这个数字 继续尝试)
3.启动成功