1、下载MySQL5.7离线安装包
https://dev.mysql.com/downloads/mysql/5.7.html
2、卸载系统安装完成后自带的mariadb-libs包(CentOS 7)
rpm -e mariadb-libs --nodeps
3、安装MySQL5.7
yum -y localinstall mysql-community-common-5.7.42-1.el7.x86_64.rpm yum -y localinstall mysql-community-libs-5.7.42-1.el7.x86_64.rpm yum -y localinstall mysql-community-libs-compat-5.7.42-1.el7.x86_64.rpm yum -y localinstall mysql-community-client-5.7.42-1.el7.x86_64.rpm yum -y localinstall mysql-community-server-5.7.42-1.el7.x86_64.rpm
4、取消初始化密码
if [ ! "$(cat /usr/bin/mysqld_pre_systemd | grep -v ^\# | grep initialize-insecure )" ]; then sed -i "s@--initialize @--initialize-insecure @g" /usr/bin/mysqld_pre_systemd fi
5、修改配置文件
# vim /etc/my.cnf [client] port = 3306 socket = /var/lib/mysql/mysql.sock [mysql] prompt="MySQL [\d]> " no-auto-rehash [mysqld] port = 3306 socket = /var/lib/mysql/mysql.sock datadir = /var/lib/mysql pid-file = /var/lib/mysql/mysql.pid user = mysql bind-address = 0.0.0.0 server-id = 1 init-connect = 'SET NAMES utf8mb4' character-set-server = utf8mb4 skip-name-resolve #skip-networking back_log = 300 max_connections = 5348 max_connect_errors = 6000 open_files_limit = 65535 table_open_cache = 1024 max_allowed_packet = 500M binlog_cache_size = 1M max_heap_table_size = 8M tmp_table_size = 128M read_buffer_size = 2M read_rnd_buffer_size = 8M sort_buffer_size = 8M join_buffer_size = 8M key_buffer_size = 256M thread_cache_size = 64 query_cache_type = 1 query_cache_size = 64M query_cache_limit = 2M ft_min_word_len = 4 log_bin = mysql-bin binlog_format = row expire_logs_days = 7 log_error = /var/lib/mysql/mysql-error.log slow_query_log = 1 long_query_time = 1 slow_query_log_file = /var/lib/mysql/mysql-slow.log performance_schema = 0 explicit_defaults_for_timestamp lower_case_table_names = 1 skip-external-locking default_storage_engine = InnoDB #default-storage-engine = MyISAM innodb_file_per_table = 1 innodb_open_files = 500 innodb_buffer_pool_size = 1024M innodb_write_io_threads = 4 innodb_read_io_threads = 4 innodb_thread_concurrency = 0 innodb_purge_threads = 1 innodb_flush_log_at_trx_commit = 2 innodb_log_buffer_size = 2M innodb_log_file_size = 32M innodb_log_files_in_group = 3 innodb_max_dirty_pages_pct = 90 innodb_lock_wait_timeout = 120 bulk_insert_buffer_size = 8M myisam_sort_buffer_size = 64M myisam_max_sort_file_size = 10G interactive_timeout = 28800 wait_timeout = 28800 binlog_rows_query_log_events = 1 log_bin_trust_function_creators = 1 log_timestamps = SYSTEM sql_mode = NO_AUTO_VALUE_ON_ZERO [mysqldump] quick max_allowed_packet = 500M [myisamchk] key_buffer_size = 256M sort_buffer_size = 8M read_buffer = 4M write_buffer = 4M
6、启动MySQL
systemctl start --now mysqld
7、修改root密码
> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Admin-123'; > flush privileges;
8、root密码忘记
# 编辑/etc/my.cnf # vim /etc/my.cnf ... [mysqld] ... skip-grant-tables ... # 重启服务 systemctl restart mysqld # 登录数据库修改root密码 > UPDATE mysql.user SET authentication_string=PASSWORD('Admin-123') WHERE User='root' AND Host='localhost'; > flush privileges; # 编辑/etc/my.cnf注释掉skip-grant-tables行 # vim /etc/my.cnf ... [mysqld] ... #skip-grant-tables ... # 重启服务 systemctl restart mysqld
9、密码插件卸载及安装
# 卸载插件 > UNINSTALL PLUGIN validate_password; # 安装插件 > INSTALL PLUGIN validate_password SONAME 'validate_password.so'; > SET GLOBAL validate_password.policy=LOW; # 修改root密码 > ALTER USER 'root'@'localhost' IDENTIFIED BY 'Admin-123';