オールドボーイmysqlシリーズ2_Mysql 8.0非常仕様インストール

2237 ワード

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.サーバファイルの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という2つのパラメータはshow variables like'%sock%';show variables like'%port%'表示.すべてのパラメータファイルにも指定が必要です.