本文将介绍如何在Linux系统下安装MySQL 8.0。首先,我们需要下载MySQL的安装包,然后进行安装和配置。以下是详细的步骤:
1. 下载MySQL安装包
访问MySQL官方网站(https://dev.mysql.com/downloads/mysql/)下载MySQL 8.0的安装包。选择对应的Linux发行版和版本,然后点击“Download”按钮。下载完成后,你会得到一个名为mysql-8.0.xx-linux-glibc2.12-x86_64.tar.xz的文件(其中xx表示具体的版本号)。
2. 解压安装包
在终端中,进入到下载目录,然后使用以下命令解压安装包:
tar -xvf mysql-8.0.xx-linux-glibc2.12-x86_64.tar.xz
解压后,你会得到一个名为mysql-8.0.xx-linux-glibc2.12-x86_64的文件夹。
3. 创建MySQL用户和组
为了安全起见,我们需要创建一个专门的用户和组来运行MySQL服务。在终端中执行以下命令:
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql
4. 移动解压后的文件夹到/usr/local目录
将解压后的文件夹移动到/usr/local目录下,并重命名为mysql8.0:
sudo mv mysql-8.0.xx-linux-glibc2.12-x86_64 /usr/local/mysql8.0
5.创建data目录
进入mysql8.0
cd mysql8.0
创建data文件夹存储文件
mkdir data
6. 更改文件夹权限
为了让MySQL用户可以访问和管理这个文件夹,我们需要更改其权限:
sudo chown -R mysql:mysql /usr/local/mysql8.0
7. 初始化MySQL数据库
进入MySQL的bin目录,然后执行mysqld命令进行初始化:
cd /usr/local/mysql8.0/bin
./mysqld --user=mysql --basedir=/usr/local/mysql8.0 --datadir=/usr/local/mysql8.0/data/ --initialize
初始化过程中,系统会生成一个临时密码,请记下这个密码,稍后需要用到。
在这里如果报错:./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
出现该问题首先检查该链接库文件有没有安装使用 rpm -qa|grep libaio命令进行核查
运行该命令后发现系统中无该链接库文件
使用命令,yum install libaio-devel.x86_64
安装
安装成功后,继续运行数据库的初始化命令,成功后得到临时密码
8.编辑my.cnf文件
vi /etc/my.cnf
注释mysqld_safe,修改信息
basedir=/usr/local/mysql8.0/ (mysql的安装目录)
datadir=/usr/local/mysql8.0/data/ (data的目录)
socket=/tmp/mysql.sock
character-set-server=UTF8MB4
完整内容如下:
[mysqld]
port=3306
#datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock
basedir=/usr/local/mysql8.0/
datadir=/usr/local/mysql8.0/data/
socket=/tmp/mysql.sock
character-set-server=UTF8MB4
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
slow_query_log=1 # 开启慢查询日志
slow_query_log_file=/usr/local/mysql-8.0/logs/slow.log # 慢查询日志存储路径
long_query_time=2 # 查询时间超过2秒的记录为慢查询
#[mysqld_safe]
#log-error=/var/log/mariadb/mariadb.log
#pid-file=/var/run/mariadb/mariadb.pid
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
9. 登录MySQL并修改密码
使用刚刚生成的临时密码登录MySQL:
mysql -u root -p
输入临时密码后,你将进入MySQL命令行界面。接下来,我们需要修改root用户的密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
将新密码替换为你想要设置的密码。
执行 flush privileges; 使密码生效
10.修改远程连接并生效
选择mysql数据库
use mysql;
修改远程连接并生效
update user set host='%' where user='root';
flush privileges;
exit;
11.开放防火墙端口,加载生效
开放防火墙3306端口
firewall-cmd --add-port=3306/tcp --permanent
重启防火墙
firewall-cmd --reload
到此mysql就安装完毕,用navicat远程测试连接
12. 配置MySQL服务自动启动
为了让MySQL服务在系统启动时自动运行,我们需要创建一个systemd服务文件。创建一个名为mysql.service的文件,内容如下:
[Unit]
Description=MySQL Server
After=network.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld_safe --user=mysql
EnvironmentFile=-/etc/sysconfig/mysql
[Install]
WantedBy=multi-user.target
将这个文件保存到/etc/systemd/system目录下,然后执行以下命令启用和启动MySQL服务:
sudo systemctl enable mysql.service
sudo systemctl start mysql.service
至此,MySQL 8.0已经成功安装在Linux系统下。