データベースサーバーMySQL 5.7をインストール
レポジトリの追加
標準リポジトリ提供のものを優先するようにプラグインを入れ、追加のレポジトリをインストールします。
# yum -y install yum-plugin-priorities 標準レポジトリを再優先にする # sed -i -e "s/\]$/\]\npriority=1/g" /etc/yum.repos.d/CentOS-Base.repo EPEL を追加します # yum -y install epel-release CentOS SCLo Software collections を追加します。 # yum -y install centos-release-scl-rh centos-release-scl パッケージが数多く配布されている Remi's RPM repository を追加 # yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
MySQL 5.7 のインストール
なお、デフォルトの MariaDB がインストールされた状態でも、Software Collections パッケージは別パスにインスールされるため、共存は可能です。
# SCLoからインストール # yum --enablerepo=centos-sclo-rh -y install rh-mysql57-mysql-server
Software Collections パッケージは /opt 配下にインストールされます
環境変数を読み込んで利用するには以下のように実行します。
# 環境変数を読み込む # scl enable rh-mysql57 bash # mysql -V mysql Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using EditLine wrapper # which mysql /opt/rh/rh-mysql57/root/usr/bin/mysql
ログイン時に自動的に有効にするには以下のように設定します
# vi /etc/profile.d/rh-mysql57.sh # 以下の内容で新規作成 #!/bin/bash source /opt/rh/rh-mysql57/enable export X_SCLS="`scl enable rh-mysql57 'echo $X_SCLS'`"
MySQL 5.7 を有効にして初期設定を実施します。
# vi /etc/opt/rh/rh-mysql57/my.cnf.d/rh-mysql57-mysql-server.cnf # [mysqld] セクション内に追記 [mysqld] character-set-server=utf8 # systemctl start rh-mysql57-mysqld # systemctl enable rh-mysql57-mysqld # mysql_secure_installation Securing the MySQL server deployment. Connecting to MySQL using a blank password. VALIDATE PASSWORD PLUGIN can be used to test passwords and improve security. It checks the strength of password and allows the users to set only those passwords which are secure enough. Would you like to setup VALIDATE PASSWORD plugin? # パスワード品質チェックプラグインの有効化の選択 Press y|Y for Yes, any other key for No: y There are three levels of password validation policy: LOW Length >= 8 MEDIUM Length >= 8, numeric, mixed case, and special characters STRONG Length >= 8, numeric, mixed case, special characters and dictionary file # パスワード品質チェックの強度の選択 Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2 Please set the password for root here. # root パスワードを設定 New password: Re-enter new password: By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. # 匿名ユーザー削除 Remove anonymous users? (Press y|Y for Yes, any other key for No) : y Success. Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. # root のリモートログイン有効/無効 Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y Success. By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. # テストデータベース削除 Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y - Dropping test database... Success. - Removing privileges on test database... Success. Reloading the privilege tables will ensure that all changes made so far will take effect immediately. # 特権情報リロード Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y Success. All done!
MySQL に root ユーザーで接続
# mysql -u root -p Enter password: # 設定したパスワードで認証 Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version: 5.7.16 MySQL Community Server (GPL) Copyright (c) 2000, 2016, 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> select user,host from mysql.user; +-----------+-----------+ | user | host | +-----------+-----------+ | mysql.sys | localhost | | root | localhost | +-----------+-----------+ 2 rows in set (0.00 sec) # データベース一覧表示 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec) mysql> quit; Bye
MySQL を他ホストから利用する場合 firewallの設定を追加
# firewall-cmd --add-service=mysql --permanent success # firewall-cmd --reload success
ポート 3306/TCP を使用しますのでポートも追加します。
# firewall-cmd --add-port=3306/tcp --permanent # firewall-cmd --reload
SQL文の例
ユーザーの管理
MySQLにログインし、登録されているユーザーを確認します
# mysql -u root -p Enter password: <=== rootのパスワードを入力しEnter mysql > select Host, User from mysql.user; +-----------+---------------+ | host | user | +-----------+---------------+ | localhost | hpadmin | | localhost | mysql.session | | localhost | mysql.sys | | localhost | root | +-----------+---------------+ 4 rows in set (0.00 sec) mysql >
ユーザーを作成し、ユーザーの権限を設定します
mysql > create user 'topadmin'@'localhost' identified by 'cbAr3,128'; Query OK, 0 rows affected (0.00 sec) mydql > grant all on *.* to 'topadmin'@'localhost'; Query OK, 0 rows affected (0.00 sec) mysql>
ユーザーを削除します
mysql > drop user 'user_name'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql >
データーベース操作
作成されているデーターベースを表示させます
mysql > show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mput1 | | mput2 | | mysql | | performance_schema | | sys | +--------------------+ 6 rows in set (0.00 sec) mysql > quit; Bye
エクスポート
データーベース mput2 をSQLファイルに、エクスポートしてみます。まずエクスポートする場所に移動しておきます。
# cd ~/ # mysqldump -h localhost -u root -p --add-drop-table mput2 > mput2.sql Enter password: <=== パスワードを入力しEnterを押します # ls -l 合計 1504 -rw-r--r--. 1 root root 1532285 4月 26 20:45 mput2.sql #
インポート
SQLファイルをインポートする場合、コマンドでは、Zip圧縮したファイルはインポート出来ませんでした。SQLファイルのままインポートします。
まず、インポート先に、mput2というデーターベースを作成しておく必要があります。
SQLファイルがあるディレクトリを指定してインポートするか、ファイルのあるディレクトリに移動してインポートします。
# cd ~/ # mysql -u root -p Enter password: <===パスワードを入力しEnterを押します mysql > create database if not exists mput2; Query OK, 0 rows affected (0.00 sec) mysql > quit; Bye # mysql -u root -p mput2 < mput2.sql Enter password: <=== パスワードを入力しEnterを押します #
正常に終了すると、# で終わります。エラーがあると、エラーの内容を表示します。