环境安装手册:安装 MySQL8 在 Centos8 上安装

在 Centos8 上安装

  1. 首先下载二进制压缩包mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz,解压。
1
2
3
4
shell复制代码mkdir /usr/local/mysql 
mkdir /usr/local/mysql/mysql-8.0.23 # MySQL安装在这个目录
tar -xvf `mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz` /usr/local/mysql/mysql-8.0.23
cd /usr/local/mysql/mysql-8.0.23
  1. 添加MySQL的用户并指定用户组。
1
2
shell复制代码groupadd mysql
useradd -r -g mysql mysql
  1. 在安装路径下创建data目录。
1
2
shell复制代码cd /usr/local/mysql/mysql-8.0.23
mkdir data
  1. 创建一个文件夹用来存放sock文件,并为该文件夹赋予权限。我创建的文件夹就在安装目录下。
1
2
3
4
shell复制代码cd /usr/local/mysql/mysql-8.0.23
mkdir conf
mkdir conf/mysql
chmod 777 conf/mysql

这一步之前看到有人说放在/tmp下,但是/tmp是临时文件夹,数据不会长期保存。所以时间久了,MySQL就无法启动了。所以不建议放在/tmp。亲身经历,要不然也不会重装了。

  1. /etc下创建配置文件my.cnf,并配置相关信息。
  • socket的目录为第4步创建的文件夹
  • basedir是安装路径
  • datadir是安装路径下的data文件夹
  • 最后的skip-grant-tables表示待会登录时不需要密码,修改密码后把这行注释
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
properties复制代码[mysql]
default-character-set=utf8
socket=/usr/local/mysql/mysql-8.0.23/conf/mysql/mysql.sock

[mysqld]
port=3306
user=mysql
socket=/usr/local/mysql/mysql-8.0.23/conf/mysql/mysql.sock
basedir=/usr/local/mysql/mysql-8.0.23
datadir=/usr/local/mysql/mysql-8.0.23/data

max_connections=200

# character-set-server=utf8

default-storage-engine=INNODB

max_allowed_packet=16M

default-authentication-plugin=mysql_native_password

transaction_isolation = READ-COMMITTED
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
lower_case_table_names = 1

skip-grant-tables
  1. 把安装目录的用户和组改为mysql
1
shell复制代码chown -R mysql:mysql ./
  1. 初始化MySQL,会生成一个随机密码(由于之前设置了不使用密码,所以这个密码不重要,如果没有开启免密,就用这个密码登录),并在data目录下创建一些文件。
1
shell复制代码./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/mysql-8.0.23 --datadir=/usr/local/mysql/mysql-8.0.23/data

注意把basedir,datadir修改为自己的路径。

  1. /etc/profile中配置环境变量。
1
2
3
properties复制代码MYSQL_HOME=/usr/local/mysql/mysql-8.0.23
PATH=$PATH:$MYSQL_HOME/bin:$MYSQL_HOME/support-files
export PATH

使配置生效

1
shell复制代码source /etc/profile
  1. 启动服务,并修改密码。
    启动服务使用mysql.server命令,该命令在安装路径下的support-files中,所以配置环境变量时也把这个目录配置了。
1
2
3
4
5
6
bash复制代码mysql.server start # 启动
mysql -uroot -p # 登录

# 修改密码
use mysql;
alter user 'root'@'localhost' identified by 'new passwd';

如果修改密码报错了,先执行flush privileges;,再修改密码。

修改密码后,要把my.cnf中的skip-grant-tables注释掉,再次重启服务mysql.server restart就可以使用密码登录了。

  1. 开启远程登录。
1
2
3
4
5
6
7
shell复制代码use mysq;
create user 'root'@'%' identified by 'root';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;
alter user 'root'@'%' identified with mysql_native_password by 'your passwd';
flush privileges;
exit;

设置后重启服务。

  1. 防火墙开启3306端口。
    先查看防火墙已经放行的端口,
1
shell复制代码firewall-cmd --list-ports

如果没有放行3306,将端口放行。

1
2
shell复制代码firewall-cmd --zone=public --add-port=3306/tcp --permanent
systemctl restart firewalld.service # 重启防火墙服务
  • service firewall start 开启防火墙
  • service firewall stop 关闭防火墙
  • service firewall restart 重启防火墙
  • firewall-cmd --state 查看防火墙状态

到这里就全部安装完成了,赶快连上服务器试试吧!

在 Ubuntu 上安装

Ubuntu 20.04.2 + MySQL8

使用 root 权限,依次执行如下命令:

1
2
3
4
5
shell复制代码wget https://dev.mysql.com/get/mysql-apt-config_0.8.18-1_all.deb
dpkg -i mysql-apt-config_0.8.18-1_all.deb
apt update
apt install mysql-server
[ok.]

本文转载自: 掘金

开发者博客 – 和开发相关的 这里全都有

0%