MySQL部署

1. RPM包安装

1.1. 安装依赖

yum -y install libaio net-tools perl openssl-devel

1.2. 解压安装

tar -xvf mysql-5.7.24-1.el7.x86_64.rpm-bundle.tar

1.3. 安装数据库(顺序)

rpm -ivh mysql-community-common-5.7.24-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.24-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.24-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.24-1.el7.x86_64.rpm

1.4. 修改配置文件

vim /etc/my.cfg

datadir=/mnt/mysql/data
socket=/var/lib/mysql/mysql.sock

symbolic-links=0

max_connections=1000
wait_timeout=28800
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

log-error=/mnt/mysql/logs/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

1.5. 创建数据库所需目录并授权

mkdir -p /mnt/mysql/{data,logs}
touch /mnt/mysql/logs/mysqld.log
chown -R mysql:mysql /mnt/mysql

1.6. 初始化数据库

mysqld --initialize --user=mysql

1.7. 关闭linux setenforce

setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

1.8. 启动数据库

systemctl start mysqld

1.9. 获取数据库密码

grep password /mnt/mysql/logs/mysqld.log

1.10. 登陆数据库初始化root密码

mysql -uroot -p
> alter user 'root'@'localhost' IDENTIFIED BY 'root';

1.11. 允许root的访问地址

> use mysql;
mysql> select host,user from user;
+-----------+---------------+
| host      | user          |
+-----------+---------------+
| localhost | mysql.session |
| localhost | mysql.sys     |
| localhost | root          |
+-----------+---------------+
3 rows in set (0.00 sec)

mysql> update user set host = '%' where user = 'root';
Query OK, 1 row affected (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

1.12. 开启远程连接

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Mysql_123456' WITH GRANT OPTION;

2. Tar包安装

2.1. 安装依赖

yum -y install libaio net-tools perl openssl-devel

2.2. 下载服务包

wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz

2.3. 解压安装

tar xvf mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz

2.4. 修改配置文件

vim /etc/my.cnf   # 修改配置文件,如下图
[mysqld]
port=3306
user=mysql
basedir=/opt/mysql
datadir=/mnt/mysql/data
socket=/mnt/mysql/data/mysql.sock
log-error=/mnt/mysql/logs/mysqld.log
pid.file=/var/mysql/mysql.sock 
[client]
port=3306
socket=/mnt/mysql/data/mysql.sock

2.5. 创建用户和组

groupadd mysql
useradd -g mysql mysql -s /sbin/nologin

2.6. 授权mysql用户

chown -R mysql:mysql /opt/mysql
chown -R mysql:mysql /mnt/mysql

2.7. 初始化MySQL

cd /opt/mysql/bin
./mysqld --initialize --user=mysql --basedir=/opt/mysql/ --datadir=/mnt/mysql/data/

2.8. 启动服务

/etc/init.d/mysql start | stop | restart 

2.9. 登陆数据库

报错:./mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No

解决:sudo ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5

mysql -uroot -p

2.10. 修改密码和登陆权限、

> alter user 'root'@'localhost' IDENTIFIED BY 'passwd';

> update user set host='%'  where user ='root';