目录
1.选择合适的mysql版本
MySQL :: Download MySQL Community Server (Archived Versions)
我的服务器系统是centos7.9,网上查了下,我可以安装mysql8.4,所以我就下载了8.4。
文件名是:mysql-8.4.0-linux-glibc2.17-x86_64.tar.xz。文件名中包含glibc2.17这个是一个c语言基础库,和系统版本有关系,如果系统版本达不到glibc2.17基本上就不能安装这个版本的mysql了。运行命令可以查看自己系统支持的c类库:
strings /lib64/libc.so.6 | grep "release version"
注意:如果系统的c类库版本和您安装的mysql需求的类库版本不匹配,您可能无法安装成功。
2.解压mysql压缩包至/usr/local/目录下
解压命令是:tar -xf mysql-8.4.0-linux-glibc2.17-x86_64.tar.xz
解压到目录:/usr/local/mysql8.4
3.新建数据目录、用户名和用户组
创建数据目录
[root@localhost mysql8]# mkdir -p /usr/local/mysql8.4/my_data
创建用户组
[root@lxm148 mysql8]# groupadd mysql
创建用户并指定用户组
[root@lxm148 mysql8]# useradd -r -g mysql mysql
更改属主和数组
[root@lxm148 mysql8]# chown -R mysql:mysql /usr/local/mysql8.4/my_data
更改用户权限
[root@lxm148 mysql8]# chmod -R 770 /usr/local/mysql8.4/my_data
4.修改环境变量并重启环境变量
[root@lxm148 mysql8]# vim /etc/profile
# Mysql
export PATH=$PATH:/usr/local/mysql8.4/bin
[root@lxm148 mysql8]# source /etc/profile
5.配置初始化使用命令
在/usr/local/mysql8.4目录下创建my.cnf配置文件,用于初始化使用命令:
[root@lxm148 mysql8]# vim ./my.cnf
[mysql]
# 默认字符集
default-character-set=utf8mb4
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
server-id = 3306
#配置远程连接
bind-address = 0.0.0.0
user = mysql
socket = /tmp/mysql.sock
# 安装目录
basedir = /opt/soft/mysql8
# 数据存放目录
datadir = /opt/soft/mysql8/datas/mysql
log-bin = /opt/soft/mysql8/datas/mysql/mysql-bin
innodb_data_home_dir =/opt/soft/mysql8/datas/mysql
innodb_log_group_home_dir =/opt/soft/mysql8/datas/mysql
#日志及进程数据的存放目录
log-error =/opt/soft/mysql8/datas/mysql/mysql.log
pid-file =/opt/soft/mysql8/datas/mysql/mysql.pid
# 服务端使用的字符集默认为8比特编码
character-set-server=utf8mb4
lower_case_table_names=1
autocommit =1
#这个配置可以本地免密码登录,很重要
mysql_native_password=ON
##################以上要修改的########################
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
6.初始化Mysql数据库
mysqld --defaults-file=/usr/local/mysql8.4/my.cnf --basedir=/usr/local/mysql8.4/ --datadir=/usr/local/mysql8.4/my_data/mysql --user=mysql --initialize-insecure
7.启动Mysql服务
--启动服务
mysqld_safe --defaults-file=/usr/local/mysql8.4/my.cnf &
--查看mysql是否启动
[root@localhost mysql8]# ps -ef | grep mysql
8.关闭Mysql服务(安装时不要做这一步)
[root@lxm148 mysql8]# mysqladmin -uroot -proot shutdown
9.跳过密码验证并修改密码
[root@localhost mysql8]# mysql -uroot --skip-password
mysql> show databases;
mysql> alter user 'root'@'localhost' identified with mysql_native_password by '你的新密码内容';
可能会报错,报错的话用SHOW PLUGINS;命令查看mysql_native_password是否是启用状态?如果不是启用状态,在配置文件中加入mysql_native_password=ON就可以开启了。
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
退出mysql环境
mysql> quit;
新密码登录本地mysql服务
方法一:mysql -uroot -p
方法二(内网ip连接):mysql -h 192.168.0.1 -u root -p
方法三(公网ip连接):mysql -h 49.4.*.* -u root -p
方法四(内网带端口):mysql -h 192.168.0.1 -P 3306 -u root -p
方法五(公网带端口):mysql -h 49.4.*.* -P 3306 -u root -p
10.查看端口是否会被占用
[root@localhost ~]# yum -y install net-tools
[root@localhost ~]# netstat -nltp | grep 3306
tcp6 0 0 :::33060 :::* LISTEN 1428/mysqld
tcp6 0 0 :::3306 :::* LISTEN 1428/mysqld
11.mysql8开机自启
cd /etc/rc.d/init.d
vim autostartmysql.sh
# 将下方写入文件
#!/bin/sh
# chkconfig: 2345 10 90
# description: myservice...
/opt/soft/mysql8/bin/mysqld_safe --defaults-file=/opt/soft/mysql8/my.cnf &
########
chmod +x /etc/rc.d/init.d/autostartmysql.sh
chkconfig --add autostartmysql.sh
chkconfig autostartmysql.sh on
12.卸载mysql【我没有测试过】
yum remove $(yum list installed | grep -i mysql | awk '{print $1}') -y