一、卸载旧版本MySQL
1.查看当前安装mysql情况
rpm -qa|grep -i mysql
2.删除之前安装的mysql
rpm -e --noscripts perl-DBD-MySQL-4.023-6.el7.x86_64
3.查找之前老版本mysql的目录
find / -name mysql
4.删除查找出的目录
rm -rf /etc/rc.d/init.d/mysql
rm -rf /usr/bin/mysql
rm -rf /usr/local/mysql
rm -rf /data/mysql
rm -rf /data/mysql/mysql
rm -rf /etc/my.cnf
rm -rf /etc/my.cnf.d
5.手动删除未查找出的目录
rm -rf /etc/my.cnf
rm -rf /etc/my.cnf.d
6.再次查看当前安装mysql情况
rpm -qa|grep -i mysql
二、安装新版本MySQL
1.来到mysql8文件夹里
cd /root/my_mysql/mysql8/
2.网络下载mysql8.0.31安装包
https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
3.解压/root/my_mysql/mysql8/mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
tar -xvf /root/my_mysql/mysql8/mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
4.对解压后的mysql文件夹进行重命名
mv /root/my_mysql/mysql8/mysql-8.0.31-linux-glibc2.12-x86_64 /root/my_mysql/mysql8/mysql-8.0.31
5.把解压后的mysql文件夹移动到/usr/local/mysql里
mv mysql-8.0.31 /usr/local/mysql
6.来到/usr/local/mysql目录
cd /usr/local/mysql
7.创建data目录
mkdir data
8.创建mysql组
groupadd mysql
9.把mysql用户添加到mysql组
useradd -g mysql mysql
10.修改权限
chown -R mysql.mysql /usr/local/mysql
11.配置my.cnf文件
vim /etc/my.cnf
12.配置内容如下
[client]
port = 3306
#根据实际情况调整mysql.sock配置
socket = /tmp/mysql.sock
[mysqld]
#Mysql服务的唯一编号 每个mysql服务Id需唯一
server-id = 1
#服务端口号 默认3306
port = 3306
#mysql安装根目录
basedir = /usr/local/mysql
#mysql数据文件所在位置
datadir = /usr/local/mysql/data
#pid
pid-file = /usr/local/mysql/mysql.pid
#设置socke文件所在目录
socket = /tmp/mysql.sock
#设置临时目录
tmpdir = /tmp
#用户
user = mysql
#允许访问的IP网段
bind-address = 0.0.0.0
#错误日志
log_error=/usr/local/mysql/data/mysql-error.log
#设置认证插件
default_authentication_plugin=mysql_native_password
#设置sqlmode(根据需求自定义)
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
#跳过密码登录
#skip-grant-tables
#主要用于MyISAM存储引擎,如果多台服务器连接一个数据库则建议注释下面内容
skip-external-locking
#只能用IP地址检查客户端的登录,不用主机名
skip_name_resolve = 1
#数据库默认字符集,主流字符集支持一些特殊表情符号(特殊表情符占用4个字节)
character-set-server = utf8mb4
#数据库字符集对应一些排序等规则,注意要和character-set-server对应
collation-server = utf8mb4_general_ci
#设置client连接mysql时的字符集,防止乱码
init_connect=‘SET NAMES utf8mb4’
#是否对sql语句大小写敏感,1表示不敏感
lower_case_table_names = 1
#最大连接数
max_connections = 400
#最大错误连接数
max_connect_errors = 1000
#TIMESTAMP如果没有显示声明NOT NULL,允许NULL值
explicit_defaults_for_timestamp = true
#SQL数据包发送的大小,如果有BLOB对象建议修改成1G
max_allowed_packet = 128M
#MySQL连接闲置超过一定时间后(单位:秒)将会被强行关闭
#MySQL默认的wait_timeout 值为8个小时, interactive_timeout参数需要同时配置才能生效
interactive_timeout = 1800
wait_timeout = 1800
#内部内存临时表的最大值 ,设置成128M。
#比如大数据量的group by ,order by时可能用到临时表,
#超过了这个值将写入磁盘,系统IO压力增大
tmp_table_size = 134217728
max_heap_table_size = 134217728
#mysql binlog日志文件保存的过期时间,过期后自动删除
expire_logs_days = 5
13.进入mysql的bin目录下
cd /usr/local/mysql/bin/
14.在bin目录下执行初始化命令
./mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ --initialize
15.添加mysql服务,并设置开机自启,查看是否有MySQL服务
chkconfig --list
16.将MySQL的服务脚本放到系统服务中
cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
17.授予可执行权限
chmod +x /etc/rc.d/init.d/mysql
18.添加mysql服务
chkconfig --add mysql
19.使MySQL开机自启
chkconfig --level 345 mysql on
20.创建mysql下bin目录的同步链接,设置后无需进入mysql的bin目录就可以执行mysql命令
ln -s /usr/local/mysql/bin/mysql /usr/bin
21.通过mysql下data目录下的日志文件获取root用户初始化密码(8v)mo:z7jXg/)
cat /usr/local/mysql/data/mysql-error.log
22.用初始密码登录mysql
mysql -u root -p
23.重置root用户密码
alter user ‘root’@‘localhost’ identified by ‘root’;
24.切换到mysql数据库
use mysql;
25.授权root用户以任何IP远程访问
update user set host = ‘%’ where user = ‘root’;
26.刷新权限
FLUSH PRIVILEGES;
27.查看用户信息是否被修改
select host, user, authentication_string, plugin from user;
28.为宿主机添加mysql服务,并设置开机自启,查看是否有MySQL服务
chkconfig --list
29.将MySQL的服务脚本放到系统服务中
cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
30.授予可执行权限
chmod +x /etc/rc.d/init.d/mysql
31.添加mysql服务
chkconfig --add mysql
32.使MySQL开机自启
chkconfig --level 345 mysql on