1、检查环境中是否已有mariadb文件

在CentOS中默认安装MariaDB,它是MySQL的分支,在此之前,我们可以先通过以下指令查询:

rpm -qa | grep -i mariadb

如果有查到列表,就通过以下指令卸载,此处有几条就对应的使用几个rpm -e --nodeps:

[root@centos7 opt]# rpm -e --nodeps xxx
[root@centos7 opt]# rpm -e --nodeps xxx

本机因为之前已卸载,所以省略。

2、检查是否安装过MySQL

此处如果之前没有安装过,可以直接省略,如果安装过,可通过一下直接进行移除:

yum -y remove mysql
3、安装MySQL依赖libaio包libaio

libaio是Linux下的一个异步非阻塞接口,它提供了以异步非阻塞方式来读写文件的方式,读写效率比较高。

yum install libaio
4、下载MySQL安装包

官方下载地址:https://downloads.mysql.com/archives/community/

5、解压压缩文件

进入/usr/local目录下,查看当前目录文件:
通过下方指令将压缩包文件解压tar.xz

tar -xvf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz

重命名:

mv mysql-8.0.26-linux-glibc2.12-x86_64 mysql

进入mysql目录:

cd mysql/

创建数据文件夹:

mkdir data
6、MySQL安装目录赋予访问权限并创建MySQL组和用户

进入mysql目录下,通过以下指令修改mysql的访问权限。
-R是目录下所有文件,777就是高权限(读、写、执行)。
chmod -R 777 /usr/local/mysql 意思就是将mysql目录下所有文件都给予最高权限。

chmod -R 777 /usr/local/mysql/

创建用户组:

groupadd mysql

创建用户:

useradd -r -g mysql -s /bin/false mysql

添加用户mysql到组mysql中:

chown -R mysql:mysql ./
7、修改MySQL配置文件

通过以下指令修改mysql配置文件:

vi /etc/my.cnf

在配置文件中输入如下内容:
配置:

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=10000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
8、安装MySQL并启动MySQL服务

进入mysql目录的bin目录下,执行以下指令安装mysql。

./mysqld --initialize --console

完成后会生成一个随机密码,本次生成的密码是nlQW+>FG*7+%,这个密码第一次登录的时候需要用到。

[Server] A temporary password is generated for root@localhost: nlQW+>FG*7+%

mysql.server服务在安装目录的support-files目录下,执行以下指令进行启动:

./mysql.server start

此处反馈的结果是启动错误,我们需要执行下方命令给mysql安装目录重新赋予一下权限,然后再次执行。

chmod -R 777 /usr/local/mysql    #文件夹修改权限
./mysql.server start    #启动MySQL服务
9、添加MySQL到系统进程

执行下方指令添加mysql到系统进程:

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
10、设置MySQL服务自启动

执行下方两行指令实现mysql服务自启动:

chmod +x /etc/init.d/mysqld
systemctl enable mysqld
11、修改root用户原始密码

修改密码前需要我们先登录mysql,在mysql安装目录的bin目录下进行登录, 在password后输入我们之前记录的初始随机密码。
登录成功后,执行下方指令修改密码,BY后面的字符串就是新密码,自己选择好记又安全的。

alter user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'xxxxxxxx';
12、设置允许远程登录并重启

执行以下指令设置允许远程登录,最终我们肯定要通过Navicat等客户端工具来连接MySQL的。

use mysql;
update user set user.Host='%'where user.User='root';
flush privileges;
quit;

上步操作后,我们执行了quit退出了mysql,现在重新启动服务。上步操作后,我们执行了quit退出了mysql,现在重新启动服务。

systemctl restart mysql
service mysql restart

通过以下指令查看MySQL服务是否启动成功:

systemctl status mysql
13、防火墙开发3306端口

执行下方执行查看防火墙端口开放列表,本机之前开放过3306端口,所以列表中存储在,如果列表中没有3306端口,请继续往下看:

firewall-cmd --list-all

防火墙开放3306端口指令,--permanent为永久生效,如果没有此参数,服务器重启后配置失效:

firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

到这一步基本上完成了。

常见错误:
报错:

Warning: mysqld.service changed on disk. Run 'systemctl daemon-reload' to reload units.
警告:磁盘上的mysqld.service已更改。运行“systemctl daemon-reload”重新加载单位。

解决:
systemctl daemon-reload
报错:

Redirecting to /bin/systemctl start mysqld.service Failed to start mysqld.service: Unit not found.
启动mysql服务正在重定向至/bin/systemctl restart mysql.service
无法重新启动mysql.service:找不到单元。

执行:

检查mysql.server在哪里?

find / -name mysql.server
返回:/usr/local/mysql/support-files/mysql.server
执行:

把此服务复制到init.d下。

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
报错:

Starting MySQL.Logging to '/usr/local/mysql/data/VM-0-9-centos.err'.ERROR! The server quit without updating PID file (/usr/local/mysql/data/VM-0-9-centos.pid).

执行:
rm -rf /usr/local/mysql/data/VM-0-9-centos.err
rm -rf /usr/local/mysql/data/VM-0-9-centos.pid
报错:mysql.service is not a native service, redirecting to /sbin/chkconfig.Executing /sbin/chkconfig mysql on

mysql.service不是本机服务,正在重定向到/sbin/chkconfig。

执行:

1、创建MySQL服务单元文件:
首先,你需要创建一个Systemd服务单元文件,以便Systemd可以管理MySQL服务。可以使用任何文本编辑器创建此文件,例如/etc/systemd/system/mysql.service。

sudo vi /etc/systemd/system/mysql.service

2、编辑服务单元文件:
在编辑器中,添加以下内容到mysql.service文件中:

配置:
[Unit]
Description=MySQL Database Server
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --pid-file=/var/run/mysqld/mysqld.pid
ExecReload=/bin/kill -HUP $MAINPID
KillSignal=SIGTERM
TimeoutSec=300
[Install]
WantedBy=multi-user.target

3、重新加载Systemd管理的服务列表:
执行以下命令以重新加载Systemd管理的服务列表,使新创建的MySQL服务单元文件生效:

sudo systemctl daemon-reload

4、启动MySQL服务:
现在,你可以启动MySQL服务了:

sudo systemctl start mysql

5、设置MySQL开机自启动:
如果你希望MySQL在系统启动时自动启动,可以使用以下命令将其设置为开机自启动:

sudo systemctl enable mysql

6、检查MySQL服务状态:
可以使用以下命令来检查MySQL服务的状态:

sudo systemctl status mysql

以上步骤完成后,你的MySQL服务应该已成功地由Systemd管理。

最后修改:2024 年 06 月 03 日
给我一点小钱钱也很高兴啦!o(* ̄▽ ̄*)ブ