写在前面:
- 网上的离线安装真的是大开眼界,一个一个的不会还乱写。
- 这里用的是linux通用版mysql。
- 安装部署要严格按照我写的走。
- 有些人可能还需要在线安装方式,我就不写了,这里给大家推荐一篇:
https://blog.csdn.net/weixin_39606484/article/details/135291409
1. 检查卸载mysql、mariadb
(1). 检查卸载mysql:
rpm -qa |grep -i mysql
[root@localhost ~]# rpm -qa |grep -i mysql
mysql80-community-release-el8-1.noarch
mysql-community-server-8.0.27-1.el8.x86_64
mysql-community-client-plugins-8.0.27-1.el8.x86_64
mysql-community-libs-8.0.27-1.el8.x86_64
mysql-community-client-8.0.27-1.el8.x86_64
bt-mysql57-5.7.34-1.el8.x86_64
mysql-community-common-8.0.27-1.el8.x86_64
用yum卸载:
yum remove mysql80-community-release-el8-1.noarch
yum remove mysql-community-server-8.0.27-1.el8.x86_64
yum remove mysql-community-client-plugins-8.0.27-1.el8.x86_64
yum remove mysql-community-libs-8.0.27-1.el8.x86_64
yum remove mysql-community-client-8.0.27-1.el8.x86_64
yum remove bt-mysql57-5.7.34-1.el8.x86_64
yum remove mysql-community-common-8.0.27-1.el8.x86_64
也可以用rpm卸载:
rpm -ev mysql80-community-release-el7-7.noarch
rpm -ev mysql-community-client-plugins-8.0.22-1.ky3.kb1.x86_64
查找mysql相关目录,以防万一全部删除:
[root@localhost ~]# find / -name mysql
/etc/logrotate.d/mysql
/var/lib/selinux/targeted/active/modules/100/mysql
/var/lib/selinux/targeted/tmp/modules/100/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/bin/mysql
/usr/lib64/mysql
/usr/share/selinux/targeted/default/active/modules/100/mysql
进行删除:
rm -rf /etc/logrotate.d/mysql
rm -rf /var/lib/selinux/targeted/active/modules/100/mysql
rm -rf /var/lib/selinux/targeted/tmp/modules/100/mysql
rm -rf /var/lib/mysql
rm -rf /var/lib/mysql/mysql
rm -rf /usr/bin/mysql
rm -rf /usr/lib64/mysql
rm -rf /usr/share/selinux/targeted/default/active/modules/100/mysql
(2). 检查卸载mariadb
rpm -qa | grep mariadb
如果有,卸载:
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64
rpm -e --nodeps mariadb-5.5.68-1.el7.x86_64
2. 安装
(1). 安装前先关闭selinux:
vi /etc/selinux/config
将SELINUX 的值 修改为disabled
(对linux比较陌生的。切记对任何修改文件做备份,最起码也要像我截图的,把原来的注释掉,新加一条,以便后续回滚)
(2). 下载
mysql社区版官网下载地址(MySQL是收费的,社区版是不收费的,所以市面上大家都用社区版):https://dev.mysql.com/downloads/mysql/
这里有个地方需要注意:
就是glibc版本: 需要到自己的机器查看:
ldd --version
看截图操作,选择glic2.17版本:
选择 No thanks, just start my download.
(3).上传到usr/local/下并解压
解压:
cd /usr/local
tar -Jxvf mysql-8.0.39-linux-glibc2.17-x86_64.tar.xz
重命名:
mv mysql-8.0.39-linux-glibc2.17-x86_64 mysql
必须重命名为mysql
(4).配置环境变量
vi /etc/profile
添加 :export PATH=$PATH:/usr/local/mysql/bin
source /etc/profile
(5). 创建用户,用户组
groupadd mysql
useradd -r -g mysql mysql
(6). 创建数据目录
mkdir -p /data/mysql8_data
(7).赋予权限
文件归属:
chown -R mysql:mysql /data/mysql8_data
读写权限:
chmod -R 750 /data/mysql8_data
(8).添加配置文件
vi /usr/local/etc/my.cnf
配置内容如下:
[mysql]
# 默认字符集
default-character-set=utf8mb4
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
server-id = 1
user = mysql
socket = /tmp/mysql.sock
# 安装目录
basedir = /usr/local/mysql
# 数据存放目录
datadir = /data/mysql8_data/mysql
log-bin = /data/mysql8_data/mysql/mysql-bin
innodb_data_home_dir =/data/mysql8_data/mysql
innodb_log_group_home_dir =/data/mysql8_data/mysql
# 日志及进程数据的存放目录
log-error =/data/mysql8_data/mysql/mysql.log
pid-file =/data/mysql8_data/mysql/mysql.pid
# 服务端字符集
character-set-server=utf8mb4
lower_case_table_names=1
autocommit =1
##### 以上涉及文件夹明,注意修改
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 1024
sort_buffer_size = 4M
net_buffer_length = 8K
read_buffer_size = 4M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 64M
thread_cache_size = 128
#query_cache_size = 128M
tmp_table_size = 128M
explicit_defaults_for_timestamp = true
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
binlog_format=mixed
binlog_expire_logs_seconds =864000
# 创建表时使用的默认存储引擎
default_storage_engine = InnoDB
innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 1024M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
transaction-isolation=READ-COMMITTED
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 4M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
(9).初始化数据库
mysqld --defaults-file=/usr/local/etc/my.cnf --basedir=/usr/local/mysql --datadir=/data/mysql8_data/mysql --user=mysql --initialize-insecure
参数说明:
–defaults-file:指定配置文件(要放在–initialize 前面)
–user: 指定用户
–basedir:指定安装目录
–datadir:指定初始化数据目录
–intialize-insecure:初始化无密码(否则生成随机密码)
3. 启动并设置自启动
(1). 启动:
/usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/etc/my.cnf &
检查一下:
ps -ef|grep mysql
(2). 登录并设置密码
首次无密码
mysql -u root --skip-password
设置密码:
首次设置密码
mysql>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
例如:
mysql>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
刷新权限
mysql>FLUSH PRIVILEGES;
设置远程用户:
#创建无IP限制用户
mysql>CREATE user 'root'@'%';
#设置首次密码
mysql>ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
#授权用户所有权限,刷新权限
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
mysql>FLUSH PRIVILEGES;
退出mysql命令客户端:
mysql>quit;
(3).设置开机自启
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
chkconfig --add mysql
chkconfig mysql on
以后就可以使用一下命令启停服务:
查看 service mysql status
停服务 service mysql stop
起服务 service mysql start
重启服务 service mysql restart
4. 防火墙开放端口
开放3306端口
#查看端口状态:no 表示未开启
firewall-cmd --query-port=3306/tcp
#永久开放端口:
firewall-cmd --add-port=3306/tcp --permanent
#重启防火墙:
systemctl restart firewalld
测试一下(当然了,你是离线的,用别的方式自己试试(* ̄︶ ̄)):
如果大家需要word版本的安装教程,可以关注我的公众号:想你所想共享小站 领取 回复“centos离线安装mysql8” 领取资料