MySQL 5.7 安装之 CentOS 7
环境准备
注意:这里使用 docker 模拟 centos 7 环境,前提已安装好 docker。
bash
拉取镜像
$ docker pull centos:7
创建并运行容器
$ docker run --name centos -p 3307:3306 --privileged=true -d centos:7 /usr/sbin/init
模拟真实的 centos 环境不能用下面这条命令,否则无法使用 systemctl 命令启动服务
$ docker run --name centos -p 3307:3306 --privileged=true -d centos:7 /bin/bash
进入容器
$ docker exec -it 容器ID或名称 /bin/bash
安装 wget 包
$ yum -y install wget更换国内 yum 源
bash
Linux yum更换国内源(任选一个)
1 备份
$ cd /etc/yum.repos.d/
$ mv CentOS-Base.repo CentOS-Base.repo_bak
2 网易yum源:
$ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
$ yum clean all
$ yum makecache
3 阿里云yum源:
$ wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
$ yum clean all
$ yum makecache
4 epel源
$ yum -y install epel-release
$ yum clean all
$ yum makecache安装 MySQL 5.7
bash
下载Mysql源安装包
$ wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
yum安装mysql源
$ yum localinstall mysql57-community-release-el7-8.noarch.rpm -y
检查mysql源是否安装成功
$ yum repolist enabled | grep "mysql.*-community.*"
yum安装Mysql
$ yum install mysql-community-server -y
启动Mysql服务(如果 cmd 终端控制台不退出,貌似不影响,Ctrl+C 退出,继续执行后面的命令)
$ systemctl start mysqld
并添加开机启动
$ systemctl enable mysqld
$ systemctl daemon-reload
查看Mysql状态
$ systemctl status mysqld
查看默认的mysql密码。此时Mysql安装完成!接下来修改密码。
$ vi /var/log/mysqld.log
登录mysql
$ mysql -uroot -p 回车
密码: =>g6hj.Nx4e (上面查看的原始密码)
修改mysql的密码
第一次进入必须修改密码,建议先修改为默认密码加上几个字符,然后再更改密码规则策略,
才能修改为简单的密码,否则密码规则验证不通过,就不能修改密码成功。
mysql> set password for 'root'@'localhost'=password('g6hj.Nx4eAAA');
密码策略的修改仅限于开发环境下方便记忆
查看 mysql 初始的密码策略
mysql> SHOW VARIABLES LIKE 'validate_password%';
设置密码的验证强度等级为 LOW,长度最小为4
mysql> set global validate_password_policy=LOW;
mysql> set global validate_password_length=4;
修改 root 用户密码
mysql> set password for 'root'@'localhost'=password('root');
创建和删除用户(可省略)
mysql> CREATE USER 'username'@'%' IDENTIFIED BY 'password';
授权(开发环境,所有数据库所有权限)
mysql> GRANT ALL ON *.* TO 'username'@'%';
mysql> DROP USER 'username'@'%';
添加远程登陆的用户权限
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
查看用户
mysql> use mysql;
mysql> select host,user,plugin from user;
退出mysql
mysql> exit;
修改mysql字符编码
$ vi /etc/my.cnf
添加
character_set_server=utf8mb4
init_connect='SET NAMES utf8mb4'
重启Mysql
$ systemctl stop mysqld
$ systemctl start mysqld
查看Mysql字符集(登录 mysql 后)
mysql> show variables like '%character%';cnf
my.cnf 文件内容
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
character_set_server=utf8mb4
init_connect='SET NAMES utf8mb4'MySQL 卸载
bash
$ rpm -qa|grep -i mysql
$ yum remove mysql-community-server -y
$ rpm -ev mysql-community-libs-5.7.33-1.el7.x86_64 --nodeps
删除文件
$ find / -name mysql
$ rm -rf /var/lib/mysql
$ rm -rf /etc/my.cnf