centos7安装mysql5.7,超详细,有图文
原创大约 2 分钟开发工具mysql数据库
centos7 安装mysql5.7
提示
docker安装mysql,请跳转docker安装mysql5.7
卸载已安装的mysql数据库
检查系统中是否已安装 MySQL
rpm -qa | grep mysql
若没有输出,则未安装mysql
在CentOS7中,默认的数据库已更新为了Mariadb,而非 MySQL,所以执行 yum install mysql 命令只是更新Mariadb数据库,并不会安装 MySQL
查看已安装的 Mariadb 数据库版本
rpm -qa|grep -i mariadb
卸载已安装的 Mariadb 数据库
rpm -qa|grep mariadb|xargs rpm -e --nodeps
删除etc目录下的my.cnf
rm -f /etc/my.cnf
该文件一定要删除,不然在安装mysql的时候会出现一些各种牛鬼蛇神的问题
再次查看已安装的 Mariadb 数据库版本,确认是否卸载完成。
rpm -qa|grep -i mariadb
若没有输出,则卸载mariadb成功
开始安装
下载安装包
下载地址:https://dev.mysql.com/downloads/mysql/5.7.html
直链下载地址:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.43-1.el7.x86_64.rpm-bundle.tar
下载完成后,将安装包上传至Linux服务器
创建mysql用户组
若使用root用户启动mysql的话,则不用该步骤
检查有无安装过mysql 用户组,没有的话创建
cat /etc/group | grep mysql
cat /etc/passwd |grep mysql
均无输出则无mysql用户
创建mysql 用户组和用户
groupadd mysql
useradd -r -g mysql mysql
安装步骤
解压压缩包
tar -xf mysql-5.7.43-1.el7.x86_64.rpm-bundle.tar
按照顺序安装rpm包
rpm -ivh mysql-community-common-5.7.43-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.43-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.43-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.43-1.el7.x86_64.rpm
提示
如果安装mysql-community-server 提示缺少perl,使用yum install perl 即可,中途安装提示缺少文件,按照要求使用yum 安装即可
启动mysql并设置开机自启
systemctl start mysqld
systemctl enable mysqld
systemctl status mysqld
配置mysql
获取初始密码
grep "password" /var/log/mysqld.log
相关信息
root@localhost:
之后的内容为你的mysql初始密码
修改初始密码
# 登录数据库
mysql -uroot -p
# 修改初始密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'GG&5Mhcbvvdv';
注意
若提示以下信息,说明你的密码过于简单,请输入复杂密码
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
修改配置文件
vim /etc/my.cnf
根据需求修改保存以下内容
[client]
# 设置mysql客户端默认字符集
default-character-set=utf8
# 对其他远程连接的mysql客户端的配置
[mysql]
default-character-set=utf8
# 本地mysql服务的配置
[mysqld]
# 设置3306端口
port = 3306
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
# 允许最大连接数
max_connections=200
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
#修改时区
default-time_zone='+8:00'
skip-name-resolve
#5.7高版本没有修改sql_mode会报ONLY_FULL_GROUP_BY错误
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
重启mysql服务
# 重启服务
systemctl restart mysqld
# 查看状态
systemctl status mysqld
重新登录配置权限
提示
下方命令中 host
可设置为 localhost 和 %,localhost 仅本机可链接mysql,% 所有IP均可链接
# 创建用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
# 创建数据库,设置utf8格式
create database databasename default character set utf8 collate utf8mb4_unicode_ci;
# 分配数据库权限
GRANT ALL ON databasename.tablename TO 'username'@'host';
# 用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令:
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
# 撤销用户权限
REVOKE privilege ON databasename.tablename FROM 'username'@'host';
# 修改用户密码
set password for 'username'@'localhost' = password('newpassword');
# 刷新权限
FLUSH PRIVILEGES;