centos7 二进制安装Mysql5.7 多版本多实例
前言:
Q:为什么开发人员写博客?
A:因为:
1. 官方主页,文档都是英文。看起来吃力。很多软件不知道怎么安装,怎么使用。
2. Linux 系统太自由了,没有对安装包和安装位置作统一安装标准。(这个使用软件包管理器会好一点。类似手机的应用市场,windows11的store, 直接一键安装)
3. Unix/Linux 都是以二进制安装为主,每个安装包内部的配置,安装方式,启动指令,启动步骤,都不相同。(没有windows 的exe /msi 安装包,一路下一步这么简单)
Q:然而就算中文网站上这么多教程博客。。。新人看了博客依然无从下手,Linux下软件都不会装,为什么?
A:因为
1. Unix/ Linux 系内,系统分为很多分发版。。。装软件要找到对应该系统的版本。。而且每个软件又分很多版本。。这就造成别人的博客的教程,和你的版本不同。你可能没法用。
2. 装软件需要很多依赖, 可能缺了某个依赖,就跑不起来。。更别说依赖的具体版本。
3. Linux 系统和 命令不熟。 什么是 user, group, 权限? 怎么vi 改脚本和配置, 怎么启动进程,杀进程,端口占用怎么办。文件没有读写权限怎么办。出错了怎么找原因,怎么解决,日志在哪里。
4. 有些博客自身写的有漏洞,细节不全没法照搬。。更别说某论坛大量的重复博客,虽然有靠谱的可以参考。。但垃圾博客还是影响搜索。
所以。。学习Linux 才会让人感觉那么难,软件也不好装。。。不像 windows,找个软件exe双击下一步完事了。。
吐槽完了。。记录下自己学习 CentOS下,Mysql5.7 的二进制安装。
CentOS二进制安装Mysql5.7
原本目的:CentOS下, 安装多版本Mysql 5.7 和 8.0,
这里先记录 独立安装Mysql5.7的过程。
要求:
1. 要能在系统内安装 多个版本的Mysql, 所以data 文件夹, 配置,都要单独分开配置。
2. 使用二进制安装,不是用rpm yum包管理器安装。
3. 多实例采用脚本启动, 不使用 mysql/support-files/mysql_multi 脚本
参考资料:(唉,资料多的,都不知道参考哪个好了)
bing 搜索关键字: “centos 多版本 mysql 安装” “centos mysql 多版本”
CentOS7.7下二进制部署MySQL多版本多实例实战 (https://www.cnblogs.com/centlnx/p/12763775.html ) 参考一:讲的很细致了
CentOs服务器下安装两个个MySql数据库踩坑日记 (https://blog.csdn.net/u010898329/article/details/83064373) 参考二:配图很细致
linux 上安装多个不同版本的mysql 踩的坑 (https://www.cnblogs.com/suiyueqiannian/p/10337935.html) 参考三,启动配置的原理,加了讲解。
google搜索 “centos mysql 多版本 安装”
centos安装多版本mysql (https://www.jianshu.com/p/ac389d939891)
环境准备:
参考:https://www.cnblogs.com/centlnx/p/12763775.html
部分指令为直接拷贝,请根据实际 下载文件更改。。。主要关注流程
1.虚拟机环境
~ cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
~ cat /proc/version
Linux version 3.10.0-1160.71.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Tue Jun 28 15:37:28 UTC 2022
2.虚拟机优化(略)
3.清理环境
卸载已安装的mysql
$ rpm -qa | grep mysql
# 如果有,可以使用以下命令依次删除上面的程序
$ yum remove mysql-xxx-xxx-
②删除mysql的配置文件
$ find / -name mysql|xargs rm -fr
③删除MariaDB的文件
$ rpm -qa | grep mariadb
$ rpm -e mariadb-xxx --nodeps
④删除my.cnf
$ rm -fr /etc/my.cnf
这个可以先备个份再删除。。而且这个清除很关键!! 因为默认会读这个文件
⑤检查端口是否被占用
$ which mysql
$ pkill mysqld
$ netstat -lntup|egrep '3306|3307|3308|3309|3316|3326|13306'
4.准备软件包
MySQL官方下载地址
下载二进制包略。
~ mkdir -p /opt/software
~ cd /opt/software
~ wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.42-el7-x86_64.tar.gz
5.准备目录(端口根据自己规划修改)
$ rm -rf /data/*
# MySQL安装目录
$ mkdir -p /data/app
# MySQL数据目录
$ mkdir -p /data/13306/data
$ mkdir -p /data/330{7,8,9}/data
$ mkdir -p /data/33{16,26}/data
# Scoket目录
$ mkdir -p /data/socket
第三章 部署MySQL5.7实例
1.解压软件包并制作软连接
$ cd /opt/software
$ tar xf mysql-5.7.43-el7-x86_64.tar.gz
$ mv mysql-5.7.43-el7-x86_64 /data/app/mysql-5.7.43
$ ln -s /data/app/mysql-5.7.43 /data/app/mysql5743
2.创建MySQL
多实例配置(这里用13306端口)
# 13306实例配置
$ cat > /data/13306/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/data/app/mysql5743
datadir=/data/13306/data
socket=/data/socket/mysql13306.sock
port=13306
server_id=6
EOF
3.创建MySQL
傀儡用户并授权
$ sudo useradd -s /sbin/nologin -M mysql
$ id mysql
$ sudo chown -R mysql.mysql /data
(这个至关重要!!! 如果不想把 /data 所属用户改为 mysql,免得影响其他已有的软件
那至少 /data 给他任意用户可读写权限 sudo chmod 777 /data
然后/data/app 也是同理。 可以不把所属改为mysql , 但最好给任意用户可读写 sudo chmod 777 /data/app
/data/app/ 下的mysql安装文件,最好全部改为mysql 所有!! sudo chown -R mysql.mysql /data/app/mysql* )
$ sudo chmod 777 /data
$ sudo chmod 777 /data/app
$ sudo chown -R mysql.mysql /data/13306
$ sudo chown -R mysql.mysql /data/socket
$ sudo chown -R mysql.mysql /data/app/mysql*
$ sudo chmod -R 755 /data/13306
$ sudo chmod -R 755 /data/socket
$ sudo chmod -R 755 /data/app/mysql*
4.初始化
$ /data/app/mysql5743/bin/mysqld --initialize-insecure --user=mysql --basedir=/data/app/mysql5743 --datadir=/data/13306/data
$ echo $?
这里如果提示
mysqld: Can't create/write to file '/data/13306/data/is_writable' (Errcode: 13 - Permission denied)
2023-08-13T15:28:01.307785Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2023-08-13T15:28:01.309533Z 0 [ERROR] --initialize specified but the data directory exists and is not writable. Aborting.
2023-08-13T15:28:01.309553Z 0 [ERROR] Aborting
那可能是 /data/13306/data 已经把所有人 改为mysql 了。 而当前运行的终端用户,可能没有写权限。
解决方法方法:前面加 sudo
正常会输出:
/data/13306 /data/app/mysql5743/bin/mysqld --initialize-insecure --user=mysql --basedir=/data/app/mysql5743 --datadir=/data/13306/data
2023-08-13T15:31:13.485426Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2023-08-13T15:31:13.487450Z 0 [Warning] One can only use the --user switch if running as root
2023-08-13T15:31:13.856423Z 0 [Warning] InnoDB: New log files created, LSN=45790
2023-08-13T15:31:13.942112Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2023-08-13T15:31:14.018854Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 70106d0d-39ee-11ee-bde3-525400be1630.
2023-08-13T15:31:14.030490Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2023-08-13T15:31:15.288789Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
2023-08-13T15:31:15.288809Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
2023-08-13T15:31:15.291694Z 0 [Warning] CA certificate ca.pem is self signed.
2023-08-13T15:31:15.539377Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
因为使用了 --initialize-insecure 所以目前mysql 的root 用户是没有设密码的。
5.编写systemd启动脚本
# 13306实例启动的服务脚本
$ sudo vim /etc/systemd/system/mysqld13306.service
# 按i 键位 进入插入模式,输入如下配置
[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=/data/app/mysql5743/bin/mysqld --defaults-file=/data/13306/my.cnf
LimitNOFILE = 5000
# 然后按 :wq 回车, 保存退出
6.启动多实例
方法一: 按原教程启动服务。 但这个需要以root 身份启动。。否则要输入 root用户的密码
$ systemctl start mysqld13306
$ netstat -lntup|grep mysqld
tcp6 0 0 :::13306 :::* LISTEN 2093/mysqld
方法二:使用mysqld 加参数启动
$ sudo /data/app/mysql5743/bin/mysqld --defaults-file=/data/13306/my.cnf --basedir=/data/app/mysql5743 --datadir=/data/13306/data --user=mysql &
正常的话会输出:
查看代码
2023-08-13T16:04:20.299526Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2023-08-13T16:04:20.299649Z 0 [Note] --secure-file-priv is set to NULL. Operations related to importing and exporting data are disabled
2023-08-13T16:04:20.299695Z 0 [Note] /data/app/mysql5743/bin/mysqld (mysqld 5.7.43) starting as process 3730 ...
……
2023-08-13T16:04:20.397353Z 0 [Note] InnoDB: Waiting for purge to start
2023-08-13T16:04:20.447535Z 0 [Note] InnoDB: 5.7.43 started; log sequence number 2767592
2023-08-13T16:04:20.447711Z 0 [Note] InnoDB: Loading buffer pool(s) from /data/13306/data/ib_buffer_pool
2023-08-13T16:04:20.447942Z 0 [Note] Plugin 'FEDERATED' is disabled.
2023-08-13T16:04:20.451859Z 0 [Note] InnoDB: Buffer pool(s) load completed at 230814 0:04:20
2023-08-13T16:04:20.454366Z 0 [Note] Found ca.pem, server-cert.pem and server-key.pem in data directory. Trying to enable SSL support using them.
2023-08-13T16:04:20.454379Z 0 [Note] Skipping generation of SSL certificates as certificate files are present in data directory.
2023-08-13T16:04:20.454384Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
2023-08-13T16:04:20.454387Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
2023-08-13T16:04:20.460165Z 0 [Warning] CA certificate ca.pem is self signed.
2023-08-13T16:04:20.460241Z 0 [Note] Skipping generation of RSA key pair as key files are present in data directory.
2023-08-13T16:04:20.461510Z 0 [Note] Server hostname (bind-address): '*'; port: 13306
2023-08-13T16:04:20.461554Z 0 [Note] IPv6 is available.
2023-08-13T16:04:20.461565Z 0 [Note] - '::' resolves to '::';
2023-08-13T16:04:20.461587Z 0 [Note] Server socket created on IP: '::'.
2023-08-13T16:04:20.466169Z 0 [Warning] Insecure configuration for --pid-file: Location '/data/13306' in the path is accessible to all OS users. Consider choosing a different directory.
2023-08-13T16:04:20.469754Z 0 [Note] Failed to start slave threads for channel ''
2023-08-13T16:04:20.475776Z 0 [Note] Event Scheduler: Loaded 0 events
2023-08-13T16:04:20.476023Z 0 [Note] /data/app/mysql5743/bin/mysqld: ready for connections.
Version: '5.7.43' socket: '/data/socket/mysql13306.sock' port: 13306 MySQL Community Server (GPL)
这里有好几个注意点:
1. 这个要用sudo 或者root 启动。。。 其他用户启动会失败,并提示没有访问数据库的权限。而且提示了 --user 只能root 才能用
查看代码
2023-08-13T16:02:17.725021Z 0 [Warning] Can't create test file /data/13306/data/VM-4-15-centos.lower-test
2023-08-13T16:02:17.725040Z 0 [Warning] Can't create test file /data/13306/data/VM-4-15-centos.lower-test
2023-08-13T16:02:17.725302Z 0 [Warning] One can only use the --user switch if running as root
2023-08-13T16:02:17.727401Z 0 [Note] InnoDB: PUNCH HOLE support available
2023-08-13T16:02:17.727454Z 0 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2023-08-13T16:02:17.727463Z 0 [Note] InnoDB: Uses event mutexes
2023-08-13T16:02:17.727471Z 0 [Note] InnoDB: GCC builtin __atomic_thread_fence() is used for memory barrier
2023-08-13T16:02:17.727477Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.13
2023-08-13T16:02:17.727483Z 0 [Note] InnoDB: Using Linux native AIO
2023-08-13T16:02:17.727864Z 0 [Note] InnoDB: Number of pools: 1
2023-08-13T16:02:17.728017Z 0 [Note] InnoDB: Using CPU crc32 instructions
2023-08-13T16:02:17.730142Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
2023-08-13T16:02:17.739758Z 0 [Note] InnoDB: Completed initialization of buffer pool
2023-08-13T16:02:17.742299Z 0 [Note] InnoDB: If the mysqld execution user is authorized, page cleaner thread priority can be changed. See the man page of setpriority().
2023-08-13T16:02:17.752343Z 0 [ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable
2023-08-13T16:02:17.752466Z 0 [ERROR] InnoDB: The innodb_system data file 'ibdata1' must be writable
2023-08-13T16:02:17.752481Z 0 [ERROR] InnoDB: Plugin initialization aborted with error Generic error
2023-08-13T16:02:18.353012Z 0 [ERROR] Plugin 'InnoDB' init function returned error.
2023-08-13T16:02:18.353040Z 0 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2023-08-13T16:02:18.353047Z 0 [ERROR] Failed to initialize builtin plugins.
2023-08-13T16:02:18.353052Z 0 [ERROR] Aborting
2. 报错提示没有 /data/13306/data 没有写入权限。。 所以检查 /data/13306/data 下创建的文件,是否属于mysql 用户,如果不是的话,再刷一下他们的所属用户组:
保证 /data/13306/data 是属于mysql 的, 下面文件也是 mysql 用户创建的。
$ sudo chown -R mysql.mysql /data/13306/data
$ sudo chmod -R 755 /data/13306/data
检查一下:
查看代码
$ cd /data
$ ll
total 16K
drwxrwxrwx 3 mysql mysql 4.0K Aug 13 23:06 13306
drwxrwxrwx 3 root root 4.0K Aug 13 22:56 app
drwxrwxrwx 2 mysql mysql 4.0K Aug 14 00:04 socket
$ cd 13306
$ ll
total 8.0K
drwxr-xr-x 5 mysql mysql 4.0K Aug 14 00:04 data
-rwxr-xr-x 1 mysql mysql 202 Aug 13 23:06 my.cnf
$ cd data
$ ll
total 121M
-rw-r----- 1 mysql mysql 5 Aug 14 00:04 VM-4-15-centos.pid
-rw-r----- 1 mysql mysql 56 Aug 13 23:31 auto.cnf
-rw------- 1 mysql mysql 1.7K Aug 13 23:31 ca-key.pem
-rw-r--r-- 1 mysql mysql 1.1K Aug 13 23:31 ca.pem
-rw-r--r-- 1 mysql mysql 1.1K Aug 13 23:31 client-cert.pem
-rw------- 1 mysql mysql 1.7K Aug 13 23:31 client-key.pem
-rw-r----- 1 mysql mysql 350 Aug 13 23:56 ib_buffer_pool
-rw-r----- 1 mysql mysql 48M Aug 14 00:04 ib_logfile0
-rw-r----- 1 mysql mysql 48M Aug 13 23:31 ib_logfile1
-rw-r----- 1 mysql mysql 12M Aug 14 00:04 ibdata1
-rw-r----- 1 mysql mysql 12M Aug 14 00:04 ibtmp1
drwxr-x--- 2 mysql mysql 4.0K Aug 13 23:31 mysql
drwxr-x--- 2 mysql mysql 4.0K Aug 13 23:31 performance_schema
-rw------- 1 mysql mysql 1.7K Aug 13 23:31 private_key.pem
-rw-r--r-- 1 mysql mysql 452 Aug 13 23:31 public_key.pem
-rw-r--r-- 1 mysql mysql 1.1K Aug 13 23:31 server-cert.pem
-rw------- 1 mysql mysql 1.7K Aug 13 23:31 server-key.pem
drwxr-x--- 2 mysql mysql 12K Aug 13 23:31 sys
3. 另外, my.cnf 需要是 755, 而不能是777 权限。不然启动时第一行会输出以下警告,说明这个配置被无视掉:
mysqld: [Warning] World-writable config file '/data/13306/my.cnf' is ignored.
$ sudo chmod -R 755 /data/13306/my.cnf
4. 还有。。启动参数, mysqld 后面要紧跟 --defaults-file。 并且 这里是两根横杠。。。不要被有些博客误导了。
比如这篇:https://www.cnblogs.com/suiyueqiannian/p/10337935.html
里面用了 ./bin/mysqld_safe –defaults-file=/usr/local/mysql-5.7.24/my.cnf 这样的写法是有问题的。。。起码在我的mysql-5.7.43会提示
sed: -e expression #1, char 32: unknown option to `s'
/data/app/mysql5743/bin/mysqld_safe: line 626: /usr/local/mysql/data/VM-4-15-centos.err: No such file or directory
Logging to '/usr/local/mysql/data/VM-4-15-centos.err'.
2023-08-13T16:24:20.933703Z mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
/data/app/mysql5743/bin/mysqld_safe: line 144: /usr/local/mysql/data/VM-4-15-centos.err: No such file or directory
/data/app/mysql5743/bin/mysqld_safe: line 198: /usr/local/mysql/data/VM-4-15-centos.err: No such file or directory
/data/app/mysql5743/bin/mysqld_safe: line 885: /usr/local/mysql/data/VM-4-15-centos.err: No such file or directory
2023-08-13T16:24:20.942681Z mysqld_safe mysqld from pid file /usr/local/mysql/data/VM-4-15-centos.pid ended
/data/app/mysql5743/bin/mysqld_safe: line 144: /usr/local/mysql/data/VM-4-15-centos.err: No such file or directory
mysqld_safe 比 mysqld 会多启动一个守护进程,使用更安全。。。这里先用基本的 mysqld 启动起来再说。
6.5 检查是否启动成功
$ sudo netstat -lntup|egrep 'mysql'
tcp6 0 0 :::13306 :::* LISTEN 3730/mysqld
7.绝对路径登录MySQL
多实例(注意要以root 登录,或者加sudo)
$ /data/app/mysql5743/bin/mysql -S /data/socket/mysql13306.sock
2023-08-13T16:34:52.099239Z 2 [Note] Access denied for user 'tidus'@'localhost' (using password: NO)
ERROR 1045 (28000): Access denied for user 'tidus'@'localhost' (using password: NO)
$ sudo /data/app/mysql5743/bin/mysql -S /data/socket/mysql13306.sock 1 ✘ tidus@VM-4-15-centos
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.43 MySQL Community Server (GPL)
……
mysql>
参考 https://blog.csdn.net/u010898329/article/details/83064373
或者 :https://www.cnblogs.com/fivedays/p/12638969.html
设置 mysql 的root 密码:
#这里重设mysql 的root 密码
mysql>alter user 'root'@'localhost' identified by '123456';
mysql> use mysql;
mysql> update user set user.Host='%' where user.User='root';
mysql> flush privileges;
mysql> quit
8.设置mysql 的启动关闭脚本
参考: https://www.jianshu.com/p/a5f24d0f736e
$ cd /data/app
$ vim startMysql57.sh
# 按i 进入插入模式, 输入
sudo /data/app/mysql5743/bin/mysqld_safe --defaults-file=/data/13306/my.cnf --basedir=/data/app/mysql5743 --datadir=/data/13306/data --user=mysql &
# 按 :wq 保存退出
$ chmod +x ./startMysql57.sh
$ vim stopMysql57.sh
# 按i 进入插入模式, 输入
/data/app/mysql5743/bin/mysqladmin -uroot -pMysqlPasswd -S /data/socket/mysql13306.sock shutdown
# 按 :wq 保存退出
$ chmod +x ./stopMysql57.sh
安装Mysql8.0
步骤和安装Mysql 5.7 类似。改改文件夹路径就行了。。
这里再简单记录一下
1.下载解压并制作软连接
$ cd /opt/software
$ wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.33-el7-x86_64.tar.gz
$ mkdir -p /data/13308/data
$ tar xf mysql-8.0.33-el7-x86_64.tar.gz
$ mv mysql-8.0.33-el7-x86_64 /data/app/mysql-8.0.33
$ ln -s /data/app/mysql-8.0.33 /data/app/mysql8033
2.创建MySQL
实例配置
按照 https://www.cnblogs.com/centlnx/p/12763775.html 的写法。。提示(/data/13308/my.cnf: No such file or directory), 就用vim的方式
vim /data/13308/my.cnf
[mysqld]
user=mysql
basedir=/data/app/mysql8033
datadir=/data/13308/data
socket=/data/socket/mysql13308.sock
port=13308
server_id=8
3.创建mysql傀儡用户并授权
data 不打算全部授权给mysql。。 所以这里定制化授权
# 我的13308 是非root创建的所以要改一改
$ cd /data
$ sudo chown -R mysql.mysql ./13308
$ ll
total 20K
drwxrwxrwx 3 mysql mysql 4.0K Aug 13 23:06 13306
drwxr-xr-x 3 mysql mysql 4.0K Aug 14 01:44 13308
drwxrwxrwx 4 root root 4.0K Aug 14 01:42 app
drwxrwxrwx 2 mysql mysql 4.0K Aug 14 01:30 socket
$ cd /app
$ ll ✔ tidus@VM-4-15-centos
total 16K
drwxr-xr-x 9 mysql mysql 4.0K Aug 13 22:52 mysql-5.7.43
drwxr-xr-x 9 tidus tidus 4.0K Aug 14 01:39 mysql-8.0.33
lrwxrwxrwx 1 mysql mysql 22 Aug 13 22:56 mysql5743 -> /data/app/mysql-5.7.43
lrwxrwxrwx 1 tidus tidus 22 Aug 14 01:42 mysql8033 -> /data/app/mysql-8.0.33
-rwxr-xr-x 1 tidus tidus 150 Aug 14 01:05 startMysql57.sh
-rwxr-xr-x 1 tidus tidus 97 Aug 14 01:27 stopMysql57.sh
$ sudo chown -R mysql.mysql ./mysql* ✔ tidus@VM-4-15-centos
$ ll ✔ tidus@VM-4-15-centos
total 16K
drwxr-xr-x 9 mysql mysql 4.0K Aug 13 22:52 mysql-5.7.43
drwxr-xr-x 9 mysql mysql 4.0K Aug 14 01:39 mysql-8.0.33
lrwxrwxrwx 1 mysql mysql 22 Aug 13 22:56 mysql5743 -> /data/app/mysql-5.7.43
lrwxrwxrwx 1 mysql mysql 22 Aug 14 01:42 mysql8033 -> /data/app/mysql-8.0.33
-rwxr-xr-x 1 tidus tidus 150 Aug 14 01:05 startMysql57.sh
-rwxr-xr-x 1 tidus tidus 97 Aug 14 01:27 stopMysql57.sh
4.安装依赖并初始化
$ sudo yum install -y perl-DBD-MySQL perl-Config-Tiny epel-release perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes
......
$ sudo /data/app/mysql8033/bin/mysqld --initialize-insecure --user=mysql --basedir=/data/app/mysql8033 --datadir=/data/13308/data
2023-08-13T17:48:23.573987Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
2023-08-13T17:48:23.574101Z 0 [System] [MY-013169] [Server] /data/app/mysql8033/bin/mysqld (mysqld 8.0.33) initializing of server in progress as process 3845
2023-08-13T17:48:23.587074Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2023-08-13T17:48:24.658000Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2023-08-13T17:48:27.095490Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
5.编写启动脚本
$ cp ./startMysql57.sh ./startMysql80.sh
$ vim ./startMysql80.sh
#改为:
sudo /data/app/mysql8033/bin/mysqld_safe --defaults-file=/data/13308/my.cnf --basedir=/data/app/mysql8033 --datadir=/data/13308/data --user=mysql &
6.启动实例
$ ./startMysql80.sh
$ sudo netstat -lntup|grep mysqld
tcp6 0 0 :::33060 :::* LISTEN 4963/mysqld
tcp6 0 0 :::13306 :::* LISTEN 30784/mysqld
tcp6 0 0 :::13308 :::* LISTEN 4963/mysqld
33060 应该是 Mysql 8.0 多启动出来的端口。
7.绝对路径登录MySQL
实例 (注意非root用户要加sudo)
$ sudo /data/app/mysql8033/bin/mysql -S /data/socket/mysql13308.sock
登录成功后,改密码方式同上。
关闭脚本的创建也同上。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类