MySQL-5.7は、CentOSの標準リポジトリに入っていません。
ですので、MySQLの公式サイトが用意しているrpmファイルからインストールします。
リポジトリもMySQLの公式サイトで用意してくれているので、追加します。
MySQLのバージョン8もリリースされていましたが、
まだバージョン5を使っていることが多い為、MySQLバージョン8は見送りました。
CentOS-7に標準で入っているのは、MariaDBなので、
MariaDBをアンインストールしてから、MySQLをインストールします。
MariaDBの確認と削除
mariadb がインストールされていたらアンインストールします。MariaDB インストール確認
##★ 確認する
[root@vm ~]# rpm -qa | grep maria
mariadb-libs-xxxxx.x86_64 ← インストールされていた場合
[root@vm ~]#
MariaDBがインストールされていた場合は、アンインストールします。
MariaDB アンインストール
##★ MariaDBをアンインストールする
[root@vm ~]# yum remove mariadb-libs
[root@vm ~]#
##★ ディレクトリを削除する
[root@vm ~]# rm -rf /var/lib/mysql
[root@vm ~]#
MySQLのリポジトリを追加する
リポジトリをMySQLの公式サイトで用意してくれているので、追加します。https://dev.mysql.com/downloads/repo/yum/
2019年5月の時点での最新は
「mysql57-community-release-el7-11.noarch.rpm」 のようです。
MySQL リポジトリ追加
[root@vm ~]# yum -y localinstall https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
読み込んだプラグイン:fastestmirror
mysql57-community-release-el7-11.noarch.rpm | 25 kB 00:00:00
/var/tmp/yum-root-3oEOle/mysql57-community-release-el7-11.noarch.rpm を調べています: mysql57-community-release-el7-11.noarch
/var/tmp/yum-root-3oEOle/mysql57-community-release-el7-11.noarch.rpm をインストール済みとして設定しています
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ mysql57-community-release.noarch 0:el7-11 を インストール
--> 依存性解決を終了しました。
依存性を解決しました
================================================================================================
Package アーキテクチャー
バージョン
リポジトリー 容量
================================================================================================
インストール中:
mysql57-community-release noarch el7-11 /mysql57-community-release-el7-11.noarch 31 k
トランザクションの要約
================================================================================================
インストール 1 パッケージ
合計容量: 31 k
インストール容量: 31 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
警告: RPMDB は yum 以外で変更されました。
** Found 1 pre-existing rpmdb problem(s), 'yum check' output follows:
httpd-devel-2.4.6-88.el7.x86_64 は次の要求が不足ています: /usr/local/bin/perl
インストール中 : mysql57-community-release-el7-11.noarch 1/1
検証中 : mysql57-community-release-el7-11.noarch 1/1
インストール:
mysql57-community-release.noarch 0:el7-11
完了しました!
[root@vm ~]#
追加したリポジトリを確認する
リポジトリが追加されているか確認します。追加リポジトリ確認
[root@vm ~]# ls -l /etc/yum.repos.d/ | grep mysql
-rw-r--r-- 1 root root 1885 4月 27 2017 mysql-community-source.repo
-rw-r--r-- 1 root root 1838 4月 27 2017 mysql-community.repo
[root@vm ~]#
MySQL-5.7の情報確認
MySQLの情報確認
[root@vm ~]# yum info mysql-community-server
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.cat.net
* epel: ftp.riken.jp
* extras: mirrors.cat.net
* remi-safe: ftp.riken.jp
* updates: mirrors.cat.net
利用可能なパッケージ
名前 : mysql-community-server
アーキテクチャー : x86_64
バージョン : 5.7.26
リリース : 1.el7
容量 : 166 M
リポジトリー : mysql57-community/x86_64
要約 : A very fast and reliable SQL database server
URL : http://www.mysql.com/
~ 中略 ~
[root@vm ~]#
MySQL-5.7をインストールする
yumコマンドでMySQL-5.7をインストールします。MySQL インストール
[root@vm ~]# yum -y install mysql-community-server
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: mirrors.cat.net
* epel: ftp.riken.jp
* extras: mirrors.cat.net
* remi-safe: ftp.riken.jp
* updates: mirrors.cat.net
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ mysql-community-server.x86_64 0:5.7.26-1.el7 を インストール
--> 依存性の処理をしています: mysql-community-common(x86-64) = 5.7.26-1.el7 のパッケージ: mysql-community-server-5.7.26-1.el7.x86_64
--> 依存性の処理をしています: mysql-community-client(x86-64) >= 5.7.9 のパッケージ: mysql-community-server-5.7.26-1.el7.x86_64
--> 依存性の処理をしています: net-tools のパッケージ: mysql-community-server-5.7.26-1.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ mysql-community-client.x86_64 0:5.7.26-1.el7 を インストール
--> 依存性の処理をしています: mysql-community-libs(x86-64) >= 5.7.9 のパッケージ: mysql-community-client-5.7.26-1.el7.x86_64
---> パッケージ mysql-community-common.x86_64 0:5.7.26-1.el7 を インストール
---> パッケージ net-tools.x86_64 0:2.0-0.24.20131004git.el7 を インストール
--> トランザクションの確認を実行しています。
---> パッケージ mariadb-libs.x86_64 1:5.5.60-1.el7_5 を 不要
--> 依存性の処理をしています: libmysqlclient.so.18()(64bit) のパッケージ: 2:postfix-2.10.1-7.el7.x86_64
--> 依存性の処理をしています: libmysqlclient.so.18(libmysqlclient_18)(64bit) のパッケージ: 2:postfix-2.10.1-7.el7.x86_64
---> パッケージ mysql-community-libs.x86_64 0:5.7.26-1.el7 を 非推奨
--> トランザクションの確認を実行しています。
---> パッケージ mysql-community-libs-compat.x86_64 0:5.7.26-1.el7 を 非推奨
--> 依存性解決を終了しました。
依存性を解決しました
================================================================================================
Package アーキテクチャー
バージョン リポジトリー 容量
================================================================================================
インストール中:
mysql-community-libs x86_64 5.7.26-1.el7 mysql57-community 2.2 M
mariadb-libs.x86_64 1:5.5.60-1.el7_5 を入れ替えます
mysql-community-libs-compat x86_64 5.7.26-1.el7 mysql57-community 2.0 M
mariadb-libs.x86_64 1:5.5.60-1.el7_5 を入れ替えます
mysql-community-server x86_64 5.7.26-1.el7 mysql57-community 166 M
依存性関連でのインストールをします:
mysql-community-client x86_64 5.7.26-1.el7 mysql57-community 24 M
mysql-community-common x86_64 5.7.26-1.el7 mysql57-community 274 k
net-tools x86_64 2.0-0.24.20131004git.el7 base 306 k
トランザクションの要約
================================================================================================
インストール 3 パッケージ (+3 個の依存関係のパッケージ)
総ダウンロード容量: 194 M
Downloading packages:
警告: /var/cache/yum/x86_64/7/mysql57-community/packages/mysql-community-common-5.7.26-1.el7.x86_64.rpm: ヘッダー V3 DSA/SHA1 Signature、鍵 ID 5072e1f5: NOKEY
mysql-community-common-5.7.26-1.el7.x86_64.rpm の公開鍵がインストールされていません
(1/6): mysql-community-common-5.7.26-1.el7.x86_64.rpm | 274 kB 00:00:00
(2/6): mysql-community-libs-5.7.26-1.el7.x86_64.rpm | 2.2 MB 00:00:00
(3/6): mysql-community-libs-compat-5.7.26-1.el7.x86_64.rpm | 2.0 MB 00:00:00
(4/6): net-tools-2.0-0.24.20131004git.el7.x86_64.rpm | 306 kB 00:00:01
(5/6): mysql-community-client-5.7.26-1.el7.x86_64.rpm | 24 MB 00:00:07
(6/6): mysql-community-server-5.7.26-1.el7.x86_64.rpm | 166 MB 00:00:27
------------------------------------------------------------------------------------------------
合計 6.4 MB/s | 194 MB 00:00:30
file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql から鍵を取得中です。
Importing GPG key 0x5072E1F5:
Userid : "MySQL Release Engineering "
Fingerprint: a4a9 4068 76fc bd3c 4567 70c8 8c71 8d3b 5072 e1f5
Package : mysql57-community-release-el7-11.noarch (installed)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : mysql-community-common-5.7.26-1.el7.x86_64 1/7
インストール中 : mysql-community-libs-5.7.26-1.el7.x86_64 2/7
インストール中 : mysql-community-client-5.7.26-1.el7.x86_64 3/7
インストール中 : net-tools-2.0-0.24.20131004git.el7.x86_64 4/7
インストール中 : mysql-community-server-5.7.26-1.el7.x86_64 5/7
インストール中 : mysql-community-libs-compat-5.7.26-1.el7.x86_64 6/7
削除中 : 1:mariadb-libs-5.5.60-1.el7_5.x86_64 7/7
検証中 : mysql-community-server-5.7.26-1.el7.x86_64 1/7
検証中 : net-tools-2.0-0.24.20131004git.el7.x86_64 2/7
検証中 : mysql-community-libs-5.7.26-1.el7.x86_64 3/7
検証中 : mysql-community-libs-compat-5.7.26-1.el7.x86_64 4/7
検証中 : mysql-community-common-5.7.26-1.el7.x86_64 5/7
検証中 : mysql-community-client-5.7.26-1.el7.x86_64 6/7
検証中 : 1:mariadb-libs-5.5.60-1.el7_5.x86_64 7/7
インストール:
mysql-community-libs.x86_64 0:5.7.26-1.el7
mysql-community-libs-compat.x86_64 0:5.7.26-1.el7
mysql-community-server.x86_64 0:5.7.26-1.el7
依存性関連をインストールしました:
mysql-community-client.x86_64 0:5.7.26-1.el7 mysql-community-common.x86_64 0:5.7.26-1.el7
net-tools.x86_64 0:2.0-0.24.20131004git.el7
置換:
mariadb-libs.x86_64 1:5.5.60-1.el7_5
完了しました!
[root@vm ~]#
MySQL-5.7のインストールを確認する
MySQL-5.7がインストールされたか確認します。MySQL-5.7 インストール確認
[root@vm ~]# mysqld --version
mysqld Ver 5.7.26 for Linux on x86_64 (MySQL Community Server (GPL))
[root@vm ~]#
MySQLの起動設定
MySQLをインストールしただけでは、まだ起動していませんので、起動するか確認します。MySQLを起動させる
MySQL 起動
[root@vm ~]# systemctl start mysqld.service
[root@vm ~]#
MySQLの起動状態を確認する
MySQL 起動確認
[root@vm ~]# systemctl status mysqld.service
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since 水 2019-05-01 00:00:00 JST; 14s ago
Docs: man:mysqld(8)
http://dev.mysql.com/doc/refman/en/using-systemd.html
Process: 10134 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
Process: 10057 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
Main PID: 10137 (mysqld)
CGroup: /system.slice/mysqld.service
└─10137 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/my...
5月 01 00:00:00 vm.lan systemd[1]: Starting MySQL Server...
5月 01 00:00:00 vm.lan systemd[1]: Started MySQL Server.
[root@vm ~]#
MySQLを停止させる
起動したMySQLを停止させてみます。MySQL 停止
[root@vm ~]# systemctl stop mysqld.service
MySQLの自動起動を設定する
CentOS-7の起動と同時にMySQLも起動するように設定します。MySQL 自動起動 設定
[root@vm ~]# systemctl enable mysqld.service
[root@vm ~]#
MySQLの自動起動を確認する
MySQLの自動起動が設定できているか確認します。MySQL 自動起動 確認
[root@vm ~]# systemctl is-enabled mysqld.service
enabled
[root@vm ~]#
MySQLの初期設定
MySQLに接続し、初期設定をします。MySQL-5.7では、新しくパスワードを設定する必要があります。
その場合のパスワードは、「Password1!」で統一して解説しています。
rootのパスワードを確認する
ログにrootのパスワードが出力されているようなので確認する。rootパスワード 確認
[root@vm ~]# grep 'temporary password' /var/log/mysqld.log
2019-05-01T00:00:00.000000Z 1 [Note] A temporary password is generated for root@localhost: MBiyW=CVb4Qj
[root@vm ~]#
root ユーザーのパスワードを設定する
パスワードが分かったので、rootユーザーで接続してみます。新しいパスワードを設定しなければ、接続後の操作ができないようになっているようなので、まず新しいパスワードを設定します。
rootユーザー 接続
[root@vm ~]# mysql --user='root' --password='MBiyW=CVb4Qj'
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 15
Server version: 5.7.26 MySQL Community Server (GPL)
Copyright (c) 2000, 2019, 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>
#★ 新しいパスワードを設定する
mysql> SET PASSWORD = PASSWORD('任意のパスワード');
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql>
#★ バージョン確認
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.7.26 |
+-----------+
1 row in set (0.00 sec)
mysql>
#★ データーベース一覧を表示
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql>
#★ データーベース"mysql"の中の"user"テーブルの情報を表示
mysql> select user,host from mysql.user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+---------------+-----------+
3 rows in set (0.00 sec)
mysql>
#★ 切断する (quit OR exit)
mysql> quit
[root@vm ~]#
パスワードの設定について
補足として、パスワードの設定方法です。8文字以上かつ英大文字・小文字・数字・記号を含めないとエラーで返されます。
設定方法には、接続してから変更する方法と接続せずに設定するコマンドがあります。
MySQL パスワード設定
#----- 接続してからパスワードを変更する方法
[root@vm ~]# mysql -u root -p
mysql> SET PASSWORD = PASSWORD('任意のパスワード');
mysql> quit
[root@vm ~]#
#----- 接続せずにパスワードを変更する方法
[root@vm ~]# ALTER USER 'ユーザ名'@'ホスト名' IDENTIFIED BY '任意のパスワード';
[root@vm ~]#
文字コードの変更設定
文字コードの確認と設定を「utf-8」に統一します。文字コード 確認
[root@vm ~]# mysql -u root -p
mysql>
#★ 文字コードを確認する
mysql> show variables like "chara%";
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.02 sec)
mysql> quit
[root@vm ~]#
MySQLの設定ファイルをバックアップする
設定ファイル バックアップ
[root@vm ~]# cp -a -P /etc/my.cnf /root/etc/
[root@vm ~]#
MySQLの設定ファイルを編集する
MySQL 設定ファイル 編集
[root@vm ~]# vi /etc/my.cnf
#--------------------------------------------------
[mysqld]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
##★ 追記する サーバーの文字コードをUTF-8にする
character-set-server = utf8
#--------------------------------------------------
#----- 編集内容を保存してエディタを閉じる
:wq
[root@vm ~]#
MySQLを再起動します
MySQLの設定を変更したら、MySQLデーモンの再起動が必要です。MySQL 再起動
[root@vm ~]# systemctl restart mysqld.service
[root@vm ~]#
文字コードの再確認
設定変更が適用されているか、再度確認しますMySQL 文字コード再確認
[root@vm ~]# mysql -u root -p
mysql>
#★ 文字コード確認
mysql> show variables like "chara%";
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.02 sec)
mysql> quit
[root@vm ~]#
MySQLの動作確認をする
PHPからMySQLに接続できるか否か、動作を確認します。MySQLのユーザーは root ではなく test で接続します。
test ユーザーを追加する
MySQLのユーザー test を追加します。MySQL ユーザー追加方法
[root@vm ~]# mysql -u root -p
mysql> CREATE USER 'ユーザ名'@'ホスト名' IDENTIFIED BY 'パスワード';
mysql> quit
[root@vm ~]#
test ユーザーを追加する
テストユーザーとして、 MySQLのユーザー "test" を追加します。MySQL ユーザー追加
[root@vm ~]# mysql -u root -p
mysql>
##★ ユーザーの一覧を確認する
mysql> SELECT host, user FROM mysql.user;
+-----------+---------------+
| host | user |
+-----------+---------------+
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
+-----------+---------------+
3 rows in set (0.00 sec)
mysql>
##★ ユーザーを作成する
mysql> CREATE USER 'test'@'localhost' IDENTIFIED BY 'Password1!';
Query OK, 0 rows affected (0.00 sec)
mysql>
##★ ユーザーの一覧を再確認する
mysql> SELECT host, user FROM mysql.user;
+-----------+---------------+
| host | user |
+-----------+---------------+
| localhost | mysql.session |
| localhost | mysql.sys |
| localhost | root |
| localhost | test |
+-----------+---------------+
4 rows in set (0.00 sec)
mysql>
mysql> quit
[root@vm ~]#
PHPからの接続確認
PHPからMySQLに接続する為、簡単なコードで接続してみます。MySQLのモジュールがPHPにインストールされている必要があります。
下記のコードをPHPが動作する場所に配置して、アクセスします。
PHP MySQL接続
<html>
<head><title>PHP TEST</title></head>
<body>
<?php
$link = mysql_connect('localhost', 'test', 'Password1!');
if (!$link) {
die('<p>接続に失敗しました。</p>' . mysql_error() );
}
echo '<p>接続に成功しました。</p>';
if (mysql_close($link)){
print('<p>切断に成功しました。</p>');
}
?>
</body>
</html>
以上、CentOS-7からMySQL-5.7をインストールする方法でした。
0 件のコメント:
コメントを投稿