在 Centos8 上安装
- 首先下载二进制压缩包
mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz,解压。
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
- 添加MySQL的用户并指定用户组。
groupadd mysql
useradd -r -g mysql mysql
- 在安装路径下创建
data目录。
cd /usr/local/mysql/mysql-8.0.23
mkdir data
- 创建一个文件夹用来存放
sock文件,并为该文件夹赋予权限。我创建的文件夹就在安装目录下。
cd /usr/local/mysql/mysql-8.0.23
mkdir conf
mkdir conf/mysql
chmod 777 conf/mysql
这一步之前看到有人说放在
/tmp下,但是/tmp是临时文件夹,数据不会长期保存。所以时间久了,MySQL就无法启动了。所以不建议放在/tmp。亲身经历,要不然也不会重装了。
- 在
/etc下创建配置文件my.cnf,并配置相关信息。
- socket的目录为第4步创建的文件夹
- basedir是安装路径
- datadir是安装路径下的
data文件夹- 最后的
skip-grant-tables表示待会登录时不需要密码,修改密码后把这行注释
[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
- 把安装目录的用户和组改为
mysql。
chown -R mysql:mysql ./
- 初始化MySQL,会生成一个随机密码(由于之前设置了不使用密码,所以这个密码不重要,如果没有开启免密,就用这个密码登录),并在
data目录下创建一些文件。
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/mysql-8.0.23 --datadir=/usr/local/mysql/mysql-8.0.23/data
注意把
basedir,datadir修改为自己的路径。
- 在
/etc/profile中配置环境变量。
MYSQL_HOME=/usr/local/mysql/mysql-8.0.23
PATH=$PATH:$MYSQL_HOME/bin:$MYSQL_HOME/support-files
export PATH
使配置生效
source /etc/profile
- 启动服务,并修改密码。
启动服务使用
mysql.server命令,该命令在安装路径下的support-files中,所以配置环境变量时也把这个目录配置了。
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就可以使用密码登录了。
- 开启远程登录。
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;
设置后重启服务。
- 防火墙开启
3306端口。 先查看防火墙已经放行的端口,
firewall-cmd --list-ports
如果没有放行3306,将端口放行。
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 权限,依次执行如下命令:
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.]