一、官网下载mysql-8.0.30 压缩包
mysql官网:https://www.mysql.com/downloads/
1 此页面滑到最底下,点击进入
2 选择需要的版本点击Download
二、解压安装
1进入/opt文件夹
cd /opt
2 将下载好的安装包上传至opt目录
可以使用Xftp连接服务器上传安装包
3 解压zx文件
xz -d mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz
4 解压tar文件
tar -xvf mysql-8.0.30-linux-glibc2.12-x86_64.tar
5 修改文件夹名称
mv mysql-8.0.30-linux-glibc2.12-x86_64 mysql-8.0.30
6 创建data文件夹
mkdir data
7 创建mysql用户组
groupadd mysql
说明:groupadd 命令用于将新组加入系统
格式:groupadd [-g gid] [-o]] [-r] [-f] groupname
主要参数:
-g gid:指定组ID号。
-o:允许组ID号,不必惟一。
-r:加入组ID号,低于499系统账号。
-f:加入已经有的组时,发展程序退出。
8 添加mysql用户
useradd -g mysql mysql
或者
useradd mysql -g mysql
说明:useradd命令用来建立用户帐号和创建用户的起始目录,使用权限是终极用户 格式: useradd [-d home] [-s
shell] [-c comment] [-m [-k template]] [-f inactive] [-e expire ] [-p
passwd] [-r] name useradd -g mysql[用户组] mysql[用户名] useradd mysql[用户名]
-g mysql[用户组] 主要参数:-c:加上备注文字,备注文字保存在passwd的备注栏中。 -d:指定用户登入时的起始目录。 -D:变更预设值。 -e:指定账号的有效期限,缺省表示永久有效。 -f:指定在密码过期后多少天即关闭该账号。 -g:指定用户所属的起始群组。
-G:指定用户所属的附加群组。 -m:自动建立用户的登入目录。 -M:不要自动建立用户的登入目录。 -n:取消建立以用户名称为名的群组。
-r:建立系统账号。 -s:指定用户登入后所使用的shell。 -u:指定用户ID号。
9 授权用户
chown -R mysql.mysql /opt/mysql-8.0.30
10 拷贝mysql.server至/etc/init.d/mysql.server 添加mysql服务到系统
cp /opt/mysql-8.0.30/support-files/mysql.server /etc/rc.d/init.d/mysql.server
chmod +x /etc/rc.d/init.d/mysql.server
chkconfig --level 2345 mysql.server on
- 特别说明:这样做是为了能够使用service 命令来启动mysql,并且mysql要注册成系统服务(步骤7、8)。mysql.server
是mysql自带的服务脚本,如果复制到/etc/rc.d/init.d
目录下并且改成mysqld.server,那么启动命令就会变成service mysqld start - 注意:如果/etc/init.d 目录没有找到,可以找/etc/rc.d/init.d
目录,两者都是用来放服务脚本的,这两个目录一般不会同时存在,如果同时存在一般会存在软连接。
11 新建/etc/my.cnf
vim /etc/my.cnf
作如下配置
[client]
default-character-set=utf8mb4
#password = your_password
port = 3306
socket = /tmp/mysql.sock
# The MySQL server
[mysqld]
#配置mysql的文件夹 和 mysql data目录
basedir=/opt/mysql-8.0.30
datadir=/opt/mysql-8.0.30/data
default-storage-engine=INNODB
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
#大小写不敏感
lower_case_table_names = 1
port = 3306
socket = /tmp/mysql.sock
skip-external-locking
key_buffer_size = 16K
max_allowed_packet = 64M
table_open_cache = 4
sort_buffer_size = 64K
read_buffer_size = 256K
read_rnd_buffer_size = 256K
net_buffer_length = 2K
thread_stack = 128K
bind-address = 0.0.0.0
server-id = 1
# Uncomment the following if you want to log updates
#log-bin=mysql-bin
# binary logging format - mixed recommended
#binlog_format=mixed
[mysqldump]
quick
max_allowed_packet = 64M
[mysql]
default-character-set = utf8mb4
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
[mysqlhotcopy]
interactive-timeout
12 初始化基础信息
注意:最后一行后面会有个随机初始密码一定保存下来,登录要用(如果忘记了就删掉data重新初始化)
cd /opt/mysql-8.0.30/bin
./mysqld --initialize --user=mysql --basedir=/opt/mysql-8.0.30
./mysqld_safe --user=mysql
13 连接数据库
mysql -u root -p
输入初始化形成的密码
14 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '自己设置的新密码';
flush privileges; //刷新权限
15 开放外网访问权限:
use mysql;
update user set host='%' where user='root';
flush privileges;
16 开放防火墙3306端口:
#查看防火墙状态
systemctl status firewalld
#开启防火墙
systemctl start firewalld
#开放相应端口
firewall-cmd --add-port=3306/tcp --permanent
#重启防火墙
firewall-cmd --reload
17 查看mysql服务状态
service mysqld status //查看mysql状态
service mysqld start //启动mysql
service mysqld stop //关闭mysql
service mysqld restart //重启mysql
或者
systemctl status mysqld
systemctl stop mysqld
systemctl start mysqld
systemctl restart mysqld
注意:如果用以下命令启动mysql,可能会报错(目前我也没弄清楚,欢迎各位留言指导)
service mysql status
service mysql status
service mysql status
service mysql status
注意:防火墙放开端口后,远程服务器的安全组也要配置相应端口(最好重启一下),否则后期部署项目是会出现错误。