
Centos7和8安装Mysql 5.7
1.yum仓库配置
安装
[root@tike ~]# rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm验证
[root@tike ~]# yum repolist all | grep mysql mysql-cluster-7.5-community/x86_64 MySQL Cluster 7.5 Community 禁用 mysql-cluster-7.5-community-source MySQL Cluster 7.5 Community - 禁用 mysql-cluster-7.6-community/x86_64 MySQL Cluster 7.6 Community 禁用 mysql-cluster-7.6-community-source MySQL Cluster 7.6 Community - 禁用 mysql-connectors-community/x86_64 MySQL Connectors Community 启用: 212 mysql-connectors-community-source MySQL Connectors Community - S 禁用 mysql-tools-community/x86_64 MySQL Tools Community 启用: 132 mysql-tools-community-source MySQL Tools Community - Source 禁用 mysql-tools-preview/x86_64 MySQL Tools Preview 禁用 mysql-tools-preview-source MySQL Tools Preview - Source 禁用 mysql55-community/x86_64 MySQL 5.5 Community Server 禁用 mysql55-community-source MySQL 5.5 Community Server - S 禁用 mysql56-community/x86_64 MySQL 5.6 Community Server 禁用 mysql56-community-source MySQL 5.6 Community Server - S 禁用 mysql57-community/x86_64 MySQL 5.7 Community Server 禁用 mysql57-community-source MySQL 5.7 Community Server - S 禁用 mysql80-community/x86_64 MySQL 8.0 Community Server 启用: 283 mysql80-community-source MySQL 8.0 Community Server - S 禁用开启mysql57发行版仓库,禁用其他版本
[root@tike ~]# yum-config-manager --disable mysql80-community [root@tike ~]# yum-config-manager --enable mysql57-community验证
[root@tike ~]# yum repolist all | grep mysql mysql57-community/x86_64 MySQL 5.7 Community Server 启用: 524 mysql80-community/x86_64 MySQL 8.0 Community Server 禁用
2.安装并启用mysql57
通过以下命令安装 MySQL, 并启动 MySQL
[root@tike ~]# yum install -y mysql-community-server启用
[root@tike ~]# systemctl start mysqld [root@tike ~]# systemctl enable mysqld [root@tike ~]# systemctl status mysqld登陆
[root@tike ~]# grep "password" /var/log/mysqld.log 2021-08-11T09:06:22.380624Z 1 [Note] A temporary password is generated for root@localhost: _z8h2ryqeNw< mysql> alter user 'root'@'localhost' identified by 'Passw0rd#2021';修改密码安全策略
mysql> set global validate_password_policy=0; Query OK, 0 rows affected (0.00 sec) mysql> set global validate_password_length=1; Query OK, 0 rows affected (0.00 sec) mysql> alter user 'root'@'localhost' identified by '123456';
3.Centos8安装mysql5.7
1.卸载自带数据库
[root@tike ~]# rpm -qa|grep mariadb
[root@tike ~]# rpm -e --nodeps xxxxxx
[root@tike ~]# rm -rf /etc/my.cnf
[root@tike ~]# rm -rf /var/lib/mysql/2.关闭Centos8中MySQL默认的AppStream仓库
[root@tike ~]# dnf remove @mysql
[root@tike ~]# dnf module reset mysql && sudo dnf module disable mysql
[root@tike ~]# cat > /etc/yum.repos.d/mysql-community.repo <[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=0
[mysql-connectors-community]
name=MySQL Connectors Community
baseurl=http://repo.mysql.com/yum/mysql-connectors-community/el/7/$basearch/
enabled=1
gpgcheck=0
[mysql-tools-community]
name=MySQL Tools Community
baseurl=http://repo.mysql.com/yum/mysql-tools-community/el/7/$basearch/
enabled=1
gpgcheck=03.安装
[root@tike ~]# dnf --enablerepo=mysql57-community install mysql-community-server
4.配置mysql
写入配置文件my.cnf
[root@tike ~]# cat > /etc/my.cnf <[mysqld]
server-id=1
character-set-server=utf8mb4
max_connections=1000
innodb_buffer_pool_size = 12G
datadir=/data/mysql-db
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
slow_query_log=on
long_query_time=1
slow_query_log_file=/data/mysql-db/mysql-slow.log
lower_case_table_names=0
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
[mysql]
default-character-set=utf8mb4
[client]
default-character-set=utf8mb4
EOF启动服务
[root@tike ~]# systemctl start mysqld.service
[root@tike ~]# systemctl status mysqld.service
[root@tike ~]# systemctl enable mysqld修改root用户
[root@tike ~]# grep "password" /var/log/mysqld.log
[root@tike ~]# mysql -uroot -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'yourpassword';
grant all privileges on *.* to 'root'@'%' identified by 'yourpassword' with grant option;
flush privileges;添加其他用户
create database pre default character set utf8mb4 collate utf8mb4_unicode_ci;
create database prod default character set utf8mb4 collate utf8mb4_unicode_ci;
create database test default character set utf8mb4 collate utf8mb4_unicode_ci;
grant all privileges on pre.* to pre@'172.%' identified by 'kQl9leR8rzV4HhD%';
grant all privileges on prod.* to prod@'172.%' identified by '9XS%c563i6IuQ%u1';
grant all privileges on test.* to test@'172.%' identified by '32!$^8mlwQmBRL02';
flush privileges;
5.mysql备份
dump.sh
#! /bin/bash
bak_path=/data/mysqldump
echo "start: "$(date +"%Y%m%d %H:%M:%S")
start=$(date +"%s")
echo "database: "$1
mydump="/usr/bin/mysqldump -hlocalhost -uroot -x $1"
mybak="${bak_path}/$(date +'%Y%m%d%H%M%S')-$1.sql"
echo "cmd: ${mydump} > ${mybak}"
echo "starting, sleep 3...."
#sleep 3
`${mydump} | gzip > ${mybak}`
end=$(date +"%s")
spent=$(expr $end - $start)
echo "spent ${spent}s"
echo "end: "$(date +"%Y%m%d %H:%M:%S")
echo "------------------------"attention
shell
#! /bin/bash
cat>/root/.my.cnf<[mysqldump]
user=root
password=yourpassword
EOFcron
15 0 * * * /bin/bash /data/mysqldump/dump.sh prod >> /data/mysqldump/dump.log 2>&1