老男孩mysql系列 2_Mysql 8.0非常规安装

1. 迁移数据文件路径
[root@oracle12c ~]# mkdir /data
[root@oracle12c ~]# cd /data/
[root@oracle12c data]# mkdir mysql
[root@oracle12c data]# cd mysql/
[root@oracle12c mysql]# mv /usr/local/mysql/data/ .
[root@oracle12c mysql]# ls

启动

[root@oracle12c mysql]# /etc/init.d/mysql.server start
Starting MySQL.Logging to '/usr/local/mysql/data/oracle12c.err'.
The server quit without updating PID file (/usr/local/mysql[FAILED]acle12c.pid).

报错原因是因为mysql按照 /etc/init.d/mysql.server里面的datadir路径去找数据文件,但是没有找到。所以需要在/etc/my.cnf中指定datadir路径,让mysql按照这个路径去找数据文件。

vim /etc/my.cnf
[mysqld]
datadir=/data/mysql/mysql/data
[root@oracle12c mysql]# /etc/init.d/mysql.server start
Starting MySQL.

类似的如果修改了basedir,启动的时候也会报错,因为/etc/init.d/mysql.server文件中的basedir是/usr/local/mysql,需要在/etc/my.cnf中指定basedir的路径

vim /etc/my.cnf
[mysqld]
basedir=/data/mysql/mysql
datadir=/data/mysql/mysql/data
2.安装时手动指定文件路径
vim /etc/my.cnf
[mysqld]
basedir=/data/mysql/mysql
datadir=/data/mysql/mysql/data

/bin/mysqld --initialize --user=mysql --basedir=/data/mysql/mysql --datadir=/data/mysql/mysql/data &

/etc/init.d/mysql.server start
Starting MySQL.Logging to '/data/mysql/mysql/data/oracle12c.err'.
.                                                          [  OK  ]

启动成功。

3.多实例mysql配置
  • 修改参数文件
vim /etc/my3307.cnf

[mysqld]
basedir=/data/mysql/mysql2
datadir=/data/mysql/mysql2/data
port=3307
socket=/tmp/mysql3307.sock
mysqlx_port=33070
mysqlx_socket=/tmp/mysql33070.sock
  • 初始化
    bin/mysqld --initialize --user=mysql --basedir=/data/mysql/mysql2 --datadir=/data/mysql/mysql2/data &
  • 启动
    bin/mysqld --defaults-file=/etc/my3307.cnf --user=mysql
  • 登录
    mysql -uroot -p -S /tmp/mysql3307.sock

mysql 8.0多了mysqlx_port=33070;mysqlx_socket=/tmp/mysql33070.sock 这两个参数,可以通过 show variables like '%sock%' ;show variables like '%port%'查看。
所有参数文件中也需要指定。

你可能感兴趣的:(老男孩mysql系列 2_Mysql 8.0非常规安装)