2022年2月11日にUMINのPLAZAが新サーバーになり、MySQLを再度インストールしたときの覚書です。
下記のサイトを参考にさせていただきました。
UMINサーバにMySQLを設置する方法 https://plaza.umin.ac.jp/ta/archives/20200428-0500.html#ref-6
UMINサーバー に WordPress を導入する https://qiita.com/shoei05/items/3fb170ff5c03f9f6f8a7
準備
FTPクライアントでUMINサーバにログインして、以下のディレクトリを作ります。
/home/account-name/public_html/usr/local/src
- mysqlソースファイル (mysql-5.7.36を使用)
- boostライブラリファイル (boost-1.72_0を使用)
- ncursesライブラリファイル (ncurses-6.2を使用)
- opensslライブラリファイル (openssl-1.1.1fを使用)
- cmakeライブラリ
圧縮ファイルを展開
$ cd /home/account-name/public_html/usr/local/src
に移動して圧縮ファイルを展開する。
$ tar xvfz mysql-5.7.36.tar.gz
$ tar xvfz boost_1_78_0.tar.gz
$ tar xvfz ncurses-6.2.tar.gz
$ tar xvfz openssl-1.1.1f.tar.gz
OPENSSLをインストール
/usr/local/src/openssl_1.1.mに移動してから下記を実行
$ ./config –prefix=/home/account-name/public_html/usr/local/openssl –openssldir=/home/account-name/public_html/usr/local/openssl shared
$ make
$ make install
MySQLのversion
mysql-5でないとmakeできない。
mysql-8ではだめでした。
ここでは、mysql-5.7.36を使用しています。
MySQLのインストール
$ cmake . -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/home/account-name/public_html/usr/local/src/boost_1_27_0/boost -DCMAKE_INSTALL_PREFIX=/home/account-name/public_html/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_SSL=/home/account-name/public_html/usr/local/openssl
$ make && make install
ポート番号
未使用のポート番号を探しておく必要があります。
下記のコマンドで使用されているポートを調べます。
$ netstat -nat | grep LISTEN | awk ‘{print $4}’
使用されているポートがランダムに表示されてしまいます。Excelなどに移して、並び替えて空いているポートを探してください。
127.0.0.1:XXXX や :::XXXX 等が使用されているところです。
ポート番号でエラーがあると
Starting MySQL.. ERROR! The server quit without updating PID file (/home/{your account}/tmp/mysql.pid).
のように表示されます。
.htaccessファイル
/home/account-name/のディレクトリに下記の内容の.htaccessファイルを置いてください。
port_numberは、未使用のポート番号です。
php_value mysql.default_port port_number
php_value mysql.default_socket /home/account-name/tmp/mysql.sock
.my.cnfファイル
/home/account-name/のディレクトリに下記の内容の.my.cnfファイルを置いてください。
[client] port=port_number
socket= /home/account-name/tmp/mysql.sock
[mysqld]
port=port_number
socket= /home/account-name/tmp/mysql.sock
key_buffer_size=16M
max_allowed_packet=8M
pid-file=/home/account-name/tmp/mysql.pid
socket = /home/account-name/tmp/mysql.sock
datadir= /home/account-name/tmp/mysql_data/
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
explicit_defaults_for_timestamp = 1
[mysqldump]
quick
[mysqld_safe]
log-error=/home/account-name/tmp/mysql_data/log/mysqld.log
pid-file=/home/account-name/tmp/mysql_data/mysqld/mysqld.pid
ここで[mysqld]の最後に加えてある
explicit_defaults_for_timestamp = 1
は、
下記のエラー対策です。
[Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use –explicit_defaults_for_timestamp server option (see documentation for more details).
初期化
/home/account-name/tmp
を空の状態で作成する。
$ /home/account-name/public_html/usr/local/mysql/bin/mysqld –initialize
コマンドを実行
最後に表示された、「…for root@localhost: YYYyyyYYYyyy」の12桁の文字列「YYYyyyYYYyyy」が初期パスワードです。
dataディレクトリーの作成
/home/account-name/tmp/mysql_data/log/
/home/account-name/tmp/mysql_data/mysqld/
MySQLを起動しようとして
[ERROR] –initialize specified but the data directory has files in it. Aborting.
がでる場合には、/home/{account}/tmp/mysql_data/の中にファイルやディレクトリは入れないようにしてください。
Mysqlの起動
$ /home/account-name/public_html/usr/local/mysql/support-files/mysql.server start
次に以下のコマンドでMySQLにログイン
$ /home/account-name/public_html/usr/local/mysql/bin/mysql -u root -p
パスワードは初期パスワード
以下のコマンドで、パスワードを変更する。
mysql> set password=’ZZZZZZZZZZZZ’;
いったん quit;でログアウト。
セキュアモードでログインして、質問に回答する。
$ /home/account-name/public_html/usr/local/mysql/bin/mysql_secure_installation
- Change the password for root ? ((Press y|Y for Yes, any other key for No) : n
- Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
- Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
- Remove test database and access to it? (Press y|Y for Yes, any other key for No) : n
- Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
LOGの場所
/home/{account}/tmp/mysql_data/log/mysqld.logがあります。
データベース名とユーザ名を設定
データベース名:database-name、ユーザ名:user-name、パスワード:password、として記載しているので、適宜変更してください。
$ /home/account-name/public_html/usr/local/mysql/bin/mysql -u root -p
mysql> create database database-name;
mysql> create user ‘user-name’@’localhost’ identified by ‘password’;
mysql> grant all privileges on database-name.* to ‘user-name’@’localhost’;
mysql> select user, host, db from mysql.db;
mysql> quit;
設定できたか確認
設定したユーザ名でログインして確認。
$ /home/account-name/public_html/usr/local/mysql/bin/mysql -u user-name -p
mysql> use database-name;
Database changed
mysql> select database();
+————+
| database() |
+————+
| database-name |
+————+
1 row in set (0.00 sec)
mysql> show tables;
Empty set (0.00 sec)
mysql> show variables like ‘port’;
+—————+——-+
| Variable_name | Value |
+—————+——-+
| port | port_number |
+—————+——-+
1 row in set (0.05 sec)
mysql> quit;
rootでログインする場合
$/home/account-name/public_html/usr/local/mysql/bin/mysql -u root -p
ここでenterを押すと
Enter password:
と出るので、パスワードを入力してください。
すると、
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.36 Source distribution
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql>
となります。
コメント