前回導入したmysql5.7の初期設定を実施します。
とりあえずサービスの起動してログインします。
目次
mysql5.7初期設定
まずはmysql用のユーザーとグループを作っておきます。
# groupadd -g 27 mysql # useradd -g 27 -u 27 mysql
管理しやすいようにdata,innodb,varディレクトリを作ります。mysqlにディレクトリの所有者移しておきます。
# mkdir -p var data innodb # chown -R mysql:mysql data innodb var
ディレクトリetcを作成し、その下にmy.cnfを作ります。
# mkdir -p etc # vim etc/my.cnf [client] socket = /usr/local/mysql/var/mysql.sock [mysqld] user = mysql port = 3306 socket = /usr/local/mysql/var/mysql.sock innodb_data_home_dir = /usr/local/mysql/innodb/ innodb_data_file_path=ibdata1:4G innodb_file_per_table
なんとなく準備出来たので、初期化をします。5.7からmysql_install_dbではなく、mysqldでの初期化が推奨になりました。insecureオプションを付けると、rootの初期パスワードを設定なしにしてくれる(と思う)。
#./bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ 2017-11-16T04:10:48.300089Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 100 200 300 400 500 600 700 800 900 1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000 2100 2200 2300 2400 2500 2600 2700 2800 2900 3000 3100 3200 3300 3400 3500 3600 3700 3800 3900 4000 2017-11-16T04:10:55.447135Z 0 [Warning] InnoDB: New log files created, LSN=45791 2017-11-16T04:10:55.488765Z 0 [Warning] InnoDB: Creating foreign key constraint system tables. 2017-11-16T04:10:55.545943Z 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: 2487bd7b-ca84-11e7-9606-fa163e73f66e. 2017-11-16T04:10:55.547531Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened. 2017-11-16T04:10:55.549359Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
権限周りが上手く行っていれば大丈夫なはずです。
後は、サービス起動用のスクリプトを準備しておきます。pidの場所等は変更しましたので、diffをご参照下さい。
# cp -p support-files/mysql.server /etc/init.d/mysql.server # diff -u /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql.server --- /usr/local/mysql/support-files/mysql.server 2017-11-06 12:51:43.000000000 +0900 +++ /etc/init.d/mysql.server 2017-11-08 18:36:25.643912272 +0900 @@ -43,8 +43,8 @@ # If you change base dir, you must also change datadir. These may get # overwritten by settings in the MySQL configuration files. -basedir= -datadir= +basedir=/usr/local/mysql +datadir=/usr/local/mysql/data # Default value, in seconds, afterwhich the script should timeout waiting # for server start. @@ -60,7 +60,7 @@ # The following variables are only set for letting mysql.server find things. # Set some defaults -mysqld_pid_file_path= +mysqld_pid_file_path=/usr/local/mysql/var/mysql.pid if test -z "$basedir" then basedir=/usr/local/mysql
それではスクリプト使って起動してみます。
# service mysql.server start Starting MySQL.Logging to '/usr/local/mysql/data/db1.unknownengineer.local.err'. SUCCESS!
プロセスもちゃんと起動していたら早速ルートでログインします。
# mysql -uroot -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 5 Server version: 5.7.20 Source distribution Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. 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>
とりあえず最低限、使える所まできました。