一、MySQL 5.6 二进制部署

注意:如果机器上存在别的版本的数据库,需要给my.conf文件更名,否则初始化会失败

1、上传数据库程序软件包

[root@master ~]# cd /usr/local
[root@master local]# rz -y

2、解压数据库服务软件程序压缩包

[root@master local]# tar xf mysql-5.6.48-linux-glibc2.12-x86_64.tar.gz

3、创建数据库服务程序目录的软链接

[root@master local]# ln -s mysql-5.6.48-linux-glibc2.12-x86_64 mysql56

4、配置数据库服务程序环境变量

末尾处添加如下内容

[root@master local]# vim /etc/profile
…
…
export PATH=/usr/local/mysql56/bin:$PATH

验证

[root@master local]# tail -1 /etc/profile
export PATH=/usr/local/mysql56/bin:$PATH

环境变量生效

[root@master local]# source /etc/profile

获取数据库服务版本信息

[root@master local]# mysql -V
mysql  Ver 5.6.48 for Linux on x86_64 (MySQL Community Server - GPL)

5、创建数据库服务管理用户信息

[root@master local]# useradd mysql

6、创建数据库服务相关目录并进行目录信息进行授权

[root@master local]# mkdir -p /data/3356/data /data/3356/logs
[root@master local]# chown -R mysql. /data/

说明:以上操作步骤只是保证了数据库服务的软件程序部分安装完毕,在系统中可以识别数据库程序。

7、数据库服务初始化

[root@master local]# /usr/local/mysql56/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql56/ --datadir=/data/3356/data

8、创建数据库服务运行需要加载的my.cnf配置模板文件

[root@master local]# cat > /etc/my56.cnf <<eof
[mysql]
socket=/tmp/mysql.sock
[mysqld]
user=mysql
basedir=/usr/local/mysql56/
datadir=/data/3356/data
socket=/tmp/mysql.sock
eof

9、启动运行MySQL数据库服务脚本

[root@master local]# vim /etc/systemd/system/mysqld56.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql56/bin/mysqld --defaults-file=/etc/my56.cnf
LimitNOFILE=5000

启动数据库服务

[root@master local]# systemctl daemon-reload
[root@master local]# systemctl start mysqld56

10、设置密码

(1)方式一:命令行方式

[root@master local]# mysqladmin password '123456'

或者

[root@master local]# mysqladmin -uroot -p password '123456'

(2) 方式二:SQL方式

[root@master local]# mysql
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');

二、MySQL 5.7 二进制部署

注意:如果机器上存在别的版本的数据库,需要给my.conf文件更名,否则初始化会失败

1、上传数据库程序软件包

[root@master ~]# cd /usr/local
[root@master local]# rz -y

#在线下载
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

2、解压数据库服务软件程序压缩包

[root@master local]# tar xf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

3、创建数据库服务程序目录的软链接

[root@master local]# ln -s mysql-5.7.30-linux-glibc2.12-x86_64 mysql57

4、配置数据库服务程序环境变量

末尾处添加如下内容

[root@master local]# vim /etc/profile
…
…
export PATH=/usr/local/mysql57/bin:$PATH

验证

[root@master local]# tail -1 /etc/profile
export PATH=/usr/local/mysql57/bin:$PATH

环境变量生效

[root@master local]# source /etc/profile

获取数据库服务版本信息

[root@master local]# mysql -V
mysql  Ver 5.7.30 for Linux on x86_64 (MySQL Community Server - GPL)

5、创建数据库服务管理用户信息

[root@master local]# useradd mysql

6、创建数据库服务相关目录并进行目录信息进行授权

[root@master local]# mkdir -p /data/3357/data /data/3357/logs
[root@master local]# chown -R mysql. /data/

说明:以上操作步骤只是保证了数据库服务的软件程序部分安装完毕,在系统中可以识别数据库程序。

7、数据库服务初始化

[root@master local]# /usr/local/mysql57/bin/mysqld  --initialize-insecure --user=mysql --basedir=/usr/local/mysql57/ --datadir=/data/3357/data

8、创建数据库服务运行需要加载的my.cnf配置模板文件

[root@master local]# cat > /etc/my57.cnf <<eof
[mysql]
socket=/tmp/mysql.sock
[mysqld]
user=mysql
basedir=/usr/local/mysql57/
datadir=/data/3357/data
socket=/tmp/mysql.sock
eof

9、启动运行MySQL数据库服务脚本

[root@master local]# vim /etc/systemd/system/mysqld57.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql57/bin/mysqld --defaults-file=/etc/my57.cnf
LimitNOFILE=5000

启动数据库服务

[root@master local]# systemctl daemon-reload
[root@master local]# systemctl start mysqld57

10、设置密码

(1)方式一:命令行方式

[root@master local]# mysqladmin password '123456'

或者

[root@master local]# mysqladmin -uroot -p password '123456'

(2) 方式二:SQL方式

[root@master local]# mysql
mysql> update mysql.user set authentication_string=PASSWORD('123456') where user='root' and host='localhost';

三、初始化经典报错信息

报错情况-01:

[报错信息]:
mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
[解决方法]:
yum install -y libaio-devel

报错情况-02:

[报错信息]:
initialize specified but the data directory has files in it. Aborting.
The designated data directory /data/3306/data/ is unusable. You can remove all files that the server added to it.
[解决方法]:
rm -rf /data/3306/data/*

说明:数据库服务初始化的过程,是用于让数据库服务创建出一些默认的数据信息,以及识别存储数据目录信息

四、安装或启动失败排错方法

方式一:查看错误日志文件

[root@master local]# ll /data/3306/data/master.err
-rw-r----- 1 mysql mysql 2667 Feb  9 14:17 /data/3306/data/master.err
[root@master local]# cat  /data/3306/data/master.err
2025-02-09T06:15:40.621523Z 0 [System] [MY-010116] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.26) starting as process 3497
2025-02-09T06:15:40.647475Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2025-02-09T06:15:41.155211Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.

方式二:在日志文件没有错误日志的前提下,查看配置文件

[root@master local]# cat /etc/my.cnf
[mysql]
socket=/tmp/mysql.sock
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3306/data
socket=/tmp/mysql.sock
innodb_fast_shutdown=0

方式三:查看进程或端口信息冲突

[root@master local]# ps -ef | grep mysql
root       3718      1  0 14:17 pts/1    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/3306/data --pid-file=/data/3306/data/master.pid
mysql      3871   3718  0 14:17 pts/1    00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/3306/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=master.err --pid-file=/data/3306/data/master.pid --socket=/tmp/mysql.sock
root       3977   2174  0 14:22 pts/1    00:00:00 grep --color=auto mysql