一.下载对应版本的mysql
下载地址:https://dev.mysql.com/downloads/mysql/
centos系统选择Red Hat, 下载mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar
二.安装
- 卸载CentOS系统自带的mariadb
[root@localhost ~]# rpm -qa|grep mariadb
mariadb-libs-5.5.60-1.el7_5.x86_64
[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
- 安装依赖
[root@localhost ~]# yum -y install perl net-tools
- 将mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar放入/download目录,解压
[root@localhost ~]# cd /download/
[root@localhost download]# tar -xvf mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar
mysql-community-embedded-devel-5.7.29-1.el7.x86_64.rpm
mysql-community-test-5.7.29-1.el7.x86_64.rpm
mysql-community-embedded-5.7.29-1.el7.x86_64.rpm
mysql-community-embedded-compat-5.7.29-1.el7.x86_64.rpm
mysql-community-libs-5.7.29-1.el7.x86_64.rpm
mysql-community-client-5.7.29-1.el7.x86_64.rpm
mysql-community-server-5.7.29-1.el7.x86_64.rpm
mysql-community-devel-5.7.29-1.el7.x86_64.rpm
mysql-community-libs-compat-5.7.29-1.el7.x86_64.rpm
mysql-community-common-5.7.29-1.el7.x86_64.rpm
- 使用rpm -ivh命令依次安装
mysql-community-common-5.7.29-1.el7.x86_64.rpm
mysql-community-libs-5.7.29-1.el7.x86_64.rpm (依赖于common)
mysql-community-client-5.7.29-1.el7.x86_64.rpm (依赖于libs)
mysql-community-server-5.7.29-1.el7.x86_64.rpm (依赖于client、common)
[root@localhost download]# rpm -ivh mysql-community-common-5.7.29-1.el7.x86_64.rpm
[root@localhost download]# rpm -ivh mysql-community-libs-5.7.29-1.el7.x86_64.rpm
[root@localhost download]# rpm -ivh mysql-community-client-5.7.29-1.el7.x86_64.rpm
[root@localhost download]# rpm -ivh mysql-community-server-5.7.29-1.el7.x86_64.rpm
- 初始化数据库,执行生会在/var/log/mysqld.log生成初始密码
[root@localhost download]# mysqld --initialize
- 查看初始密码,找到最后一行“A temporary password is generated for root@localhost: n-eZ%&EX2kdK”, 密码就是n-eZ%&EX2kdK
[root@localhost download]# cat /var/log/mysqld.log
- 更改mysql数据库目录的所属用户及其所属组,然后启动mysql
[root@localhost download]# chown mysql:mysql /var/lib/mysql -R
[root@localhost download]# systemctl start mysqld
- 用初始密码登录mysql, 更改密码
[root@localhost download]# mysql -uroot -p
mysql> set password=password('123456');
- 创建新用户及赋权
create user 'root'@'%' identified by '123456';
grant all on *.* to 'root'@'%';
flush privileges;
- 修改/etc/my.cnf文件,内容如下。 innodb_buffer_pool_size最大可设置为内存的80%
[mysql]
default-character-set = utf8mb4
[mysqld]
sql_mode = STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
#common
default-time_zone = '+8:00'
max_connections = 2000
tmp_table_size = 200M
character-set-server = utf8mb4
max_allowed_packet = 32M
lower_case_table_names = 1
log-error = mysql-error.log
slow_query_log = on
slow-query-log-file = mysql-slow.log
long_query_time = 2
log-queries-not-using-indexes = mysql-nouseindex.log
#innodb
innodb_buffer_pool_size = 1G
innodb_thread_concurrency = 16
innodb_log_file_size = 512M
innodb_log_files_in_group = 3
innodb_lock_wait_timeout = 120