1.卸载原系统中的mariadb……
首先执行命令rpm -qa|grep mariadb查看是否有mariadb的安装包,没有可以不管
接下来,执行
rpm -e --nodeps mariadb-libs #删除掉
- 下载mysql5.7安装包
1.前往官方网站复制yum源链接Mysql官网
然后鼠标右键粘贴
wget
执行wget https://dev.mysql.com/get/mysql84-community-release-el7-1.noarch.rpm(复制的下载链接)进行下载
2.进行yum源安装
执行rpm -ivh mysql84-community-release-el7-1.noarch.rpm命令
rpm -ivh mysql84-community-release-el7-1.noarch.rpm
接下来可以通过yum repolist all | grep mysql查看yum源中的mysql安装包
执行
yum -y install yum-utils
可以看到yum源中默认启用的安装包版本为MySQL8.0,如果需要切换为5.7,需要运行以下命令;
yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community
接下来可以开始进行安装步骤,执行命令
这条命令 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 是用来在使用 RPM 包管理器的 Linux 系统上导入 MySQL 仓库的 GPG 密钥。下面是它的具体作用:
rpm --import:这部分命令告诉 RPM 包管理器要导入一个 GPG 密钥。GPG 密钥用于验证软件包的完整性和真实性,确保软件包没有被篡改。
https://repo.mysql.com/RPM-GPG-KEY-mysql-2022:这是 MySQL 软件包的 GPG 密钥所在的 URL。通过指定这个 URL,系统会下载并导入这个密钥。
导入这个密钥后,你就可以安全地从 MySQL 官方仓库中安装和更新 MySQL 软件包,因为系统会使用这个密钥来验证这些软件包的来源和完整性。
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
安装命令
yum install mysql-community-server
配置my.conf
执行
vi /etc/my.conf
配置如下
# 允许最大连接数
max_connections=20000
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
#大小写敏感
lower_case_table_names=1
wait_timeout=2147483
interactive_timeout=2147483
max_connections = 20000
max_connect_errors = 6000
open_files_limit = 65535
table_open_cache = 512
max_allowed_packet = 500M
binlog_cache_size = 1M
max_heap_table_size = 8M
tmp_table_size = 64M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
sort_buffer_size = 8M
join_buffer_size = 8M
key_buffer_size = 512M
thread_cache_size = 32
query_cache_size = 128M
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
innodb_file_per_table = 1
innodb_open_files = 500
innodb_buffer_pool_size = 4G
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 = 1G
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 = 32M
myisam_max_sort_file_size = 10G
# 开启查询缓存
explicit_defaults_for_timestamp=true
#skip-grant-tables 万一密码忘记了取消注释,直接重启直接可以登录用
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
- 启动mysql服务
执行命令systemctl start mysqld.service来启动mysql服务
执行命令systemctl status mysqld.service可查看mysql服务运行状态
systemctl start mysqld.service
systemctl status mysqld.service
查看临时密码
grep 'temporary password' /var/log/mysqld.log
输入临时密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '_UYmic*i#8Ur';
set global validate_password_policy=0;
set global validate_password_length=1;
set global validate_password_mixed_case_count=2;
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
然后就是授权访问
mysql -u root -p;
mysql>use mysql;
mysql>select host, user from user;
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '123456' WITH GRANT OPTION;
授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
如果你想允许用户myuser从ip为192.168.21.66的主机连接到mysql服务器,并使用mypassword作为密码
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.21.66' IDENTIFIED BY '123456' WITH GRANT OPTION;
mysql>GRANT SELECT,DELETE,UPDATE,CREATE,DROP ON *.* to root@"%" IDENTIFIED BY "123456";
如果用户无法从本地登陆,这个时候就执行如下
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost.localdomain' IDENTIFIED BY '123456' WITH GRANT OPTION;
下面这一句一定要执行,否则还是无法登陆
mysql>flush privileges;