yum install -y libaio1. 卸载数据库服务器1.1 卸载mariadbrpm -qa|grep mariadb rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_641.2 删除配置rm -rf /etc/my.cnf2. 创建用户2.1 创建用户组groupadd mysql2.2 创建用户并加入到mysql组useradd -r -g mysql mysql3. 解压mysql到/usr/localtar -xzvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz -C /usr/local/ cd /usr/local/ mv mysql-5.7.23-linux-glibc2.12-x86_64/ mysql4. 创建必要目录4.1 创建socket文件夹mkdir -p /data/mysql/socket mkdir -p /data/mysql/data mkdir -p /data/mysql/log/mysql-bin mkdir -p /data/mysql/mysqld/log mkdir -p /data/mysql/mysqld/pid touch /data/mysql/mysqld/log/mysqld.log4.2 为数据存储目录赋权chown -R mysql.mysql /data/mysql5. 创建my.cnf配置文件(已经做了部分优化)[client] port=3306socket=/data/mysql/socket/mysql.sock [mysqld_safe] log-error=/data/mysql/mysqld/log/mysqld.log pid-file=/data/mysql/mysqld/pid/mysqld.pid [mysqld] # 服务器ID server-id=10001# 端口号port=3306################################################# # 指定数据文件位置basedir=/usr/local/mysql datadir=/data/mysql/data socket=/data/mysql/socket/mysql.sock ################################################# # server接受的数据包大小max_allowed_packet=32M # 设置连接数# MySQL中与安全有关的计数器值,它负责阻止过多尝试失败的客户端以防止暴力破解密码max-connect-errors=# 连接数max-connections=1000# 开启查询缓存explicit_defaults_for_timestamp=true # mysql服务器能够工作在不同的模式下,并能针对不同的客户端以不同的方式应用sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES # 建议禁用symbolic-links以防止各种安全风险symbolic-links=0################################################# # innodb 优化innodb_page_size=8K # 数据缓冲区buffer pool大小,建议使用物理内存的 75% innodb_buffer_pool_size=1G # 运行时load缓冲池,快速预热缓冲池innodb_buffer_pool_load_at_startup=1# 运行时dump缓冲池innodb_buffer_pool_dump_at_shutdown=1# 开启后会将所有的死锁记录到error_log中innodb_print_all_deadlocks=1# log 文件大小及缓冲池innodb_log_file_size=1G innodb_log_buffer_size=64M ################################################# # 开启二进制日志 Binary log/replication log-bin=/data/mysql/log/mysql-bin # 为了在最大程序上保证复制的InnoDB事务持久性和一致性sync_binlog=1sync_relay_log=1# 启用此两项,可用于实现在崩溃时保证二进制及从服务器安全的功能relay-log-info-repository=TABLE master-info-repository=TABLE # 设置清除日志时间expire_logs_days=7# 行复制binlog_format=ROW # mysql数据库事务隔离级别有四种(READ UNCOMMITTED,READ COMMITTED,REPEATABLE READ,SERIALIZABLE) transaction-isolation=READ-COMMITTED # 不需要同步的库binlog-ignore-db=mysql binlog-ignore-db=information_schema binlog-ignore-db=performance_schema binlog-ignore-db=sys #GTID模式gtid-mode=on log-slave-updates=true enforce-gtid-consistency=true # 设定从服务器的SQL线程数;0表示关闭多线程复制功能,值与要复制的数据库相等slave-parallel-workers=1# 开启binlog校验binlog-checksum=CRC32  master-verify-checksum=1 slave-sql-verify-checksum=16. 初始化数据库/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data注意这里完成之后,会输出一份临时密码,用于后面登陆