在 Centos8 上安装
- 首先下载二进制压缩包
mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz
,解压。
1 | shell复制代码mkdir /usr/local/mysql |
- 添加MySQL的用户并指定用户组。
1 | shell复制代码groupadd mysql |
- 在安装路径下创建
data
目录。
1 | shell复制代码cd /usr/local/mysql/mysql-8.0.23 |
- 创建一个文件夹用来存放
sock
文件,并为该文件夹赋予权限。我创建的文件夹就在安装目录下。
1 | shell复制代码cd /usr/local/mysql/mysql-8.0.23 |
这一步之前看到有人说放在
/tmp
下,但是/tmp
是临时文件夹,数据不会长期保存。所以时间久了,MySQL就无法启动了。所以不建议放在/tmp
。亲身经历,要不然也不会重装了。
- 在
/etc
下创建配置文件my.cnf
,并配置相关信息。
- socket的目录为第4步创建的文件夹
- basedir是安装路径
- datadir是安装路径下的
data
文件夹- 最后的
skip-grant-tables
表示待会登录时不需要密码,修改密码后把这行注释
1 | properties复制代码[mysql] |
- 把安装目录的用户和组改为
mysql
。
1 | shell复制代码chown -R mysql:mysql ./ |
- 初始化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
修改为自己的路径。
- 在
/etc/profile
中配置环境变量。
1 | properties复制代码MYSQL_HOME=/usr/local/mysql/mysql-8.0.23 |
使配置生效
1 | shell复制代码source /etc/profile |
- 启动服务,并修改密码。
启动服务使用mysql.server
命令,该命令在安装路径下的support-files
中,所以配置环境变量时也把这个目录配置了。
1 | bash复制代码mysql.server start # 启动 |
如果修改密码报错了,先执行
flush privileges;
,再修改密码。修改密码后,要把
my.cnf
中的skip-grant-tables
注释掉,再次重启服务mysql.server restart
就可以使用密码登录了。
- 开启远程登录。
1 | shell复制代码use mysq; |
设置后重启服务。
- 防火墙开启
3306
端口。
先查看防火墙已经放行的端口,
1 | shell复制代码firewall-cmd --list-ports |
如果没有放行3306
,将端口放行。
1 | shell复制代码firewall-cmd --zone=public --add-port=3306/tcp --permanent |
service firewall start
开启防火墙service firewall stop
关闭防火墙service firewall restart
重启防火墙firewall-cmd --state
查看防火墙状态
到这里就全部安装完成了,赶快连上服务器试试吧!
在 Ubuntu 上安装
Ubuntu 20.04.2 + MySQL8
使用 root
权限,依次执行如下命令:
1 | shell复制代码wget https://dev.mysql.com/get/mysql-apt-config_0.8.18-1_all.deb |
本文转载自: 掘金