mysqlのインストール方法の紹介です。Yumリポジトリを使ったインストールはバージョン5.7です。ソースからのインストールはバージョン5.5になります。
Yum(dnf)リポジトリを使用してMySQLインストール
yum リポジトリを追加
リポジトリを追加します。インストールするOSに合わせて追加してください。(Fedora26の場合)
[root@localhost ~]# dnf install -y http://repo.mysql.com/mysql57-community-release-fc26-10.noarch.rpm
Mysqlリポジトリページ
http://dev.mysql.com/downloads/repo/
インストール
[root@localhost ~]# dnf install mysql-community-server
インストールの確認
[root@localhost ~]# rpm -qa | grep mysql
mysql-community-server-5.7.21-1.fc26.x86_64
mysql-community-client-5.7.21-1.fc26.x86_64
mysql57-community-release-fc26-10.noarch
mysql-community-libs-5.7.21-1.fc26.x86_64
mysql-community-common-5.7.21-1.fc26.x86_64
バージョンの確認
[root@localhost ~]# mysql –version
mysql Ver 14.14 Distrib 5.7.21, for Linux (x86_64) using EditLine wrapper
起動
起動コマンド
[root@localhost ~]# systemctl start mysqld.service
停止コマンド
[root@localhost ~]# systemctl stop mysqld.service
自動起動
[root@localhost ~]# systemctl enable mysqld.service
自動起動の確認
[root@localhost ~]# systemctl list-unit-files |grep mysqld
mysqld.service enabled
mysqlにログインする
ログインコマンド
[root@localhost ~]# mysql -u root -p
インストール時のパスワードは、ログファイルに記載されてます。
[root@localhost ~]# cat /var/log/mysqld.log | grep password
2018-02-25T07:29:59.254011Z 1 [Note] A temporary password is generated for root@localhost: (パスワード)
パスワードの変更
mysqlの初期設定では、パスワードポリシーが「MEDIUM」のため、新規パスワードには、大文字、小文字、数字、記号の複合ワードになります。
以前のパスワードデータを引き継ぐ時は、パスワードが上記の条件を満たいしていないとエラーになります。パスワードポリシーを変更した上でパスワードを設定してください。
mysql> UPDATE user SET authentication_string=password(‘新パスワード’) WHERE user=’root’;
パスワードポリシーの変更
パスワードポリシーの確認
mysql> show variables like ‘validate_password%’;
パスワードポリシーの変更
mysql> set global validate_password_policy=LOW;
パスワードの文字数変更
mysql> set global validate_password_length=4;
その他
mysqlの初期化
[root@localhost ~]# rm -Rf /var/lib/mysql/
[root@localhost ~]# mysqld –user=mysql –initialize
mysqlの初期化は最終手段です。データをバックアップした上で行ってください。
操作手順は、データを削除してmysqldコマンドを実行しましす。
mysql_install_db(昔の方法)では無いので、注意してください。
MySQLをソースからインストール
Mysql-5.5系をソースからインストールする方法の紹介です。 Mysqlインストールしようとしたとき、「configure」ファイルがなかったので、少し焦りました。調べてみると、「cmake」が必要になります。インストールしていない場合は、「cmake」をインストールしてください。
1. 「cmake」の確認とインストール
[root@localhost ~]# rpm -qa | grep cmake
(↓結果)
cmake-2.8.2-3.fc14.x86_64
インストールさせていない場合は、「yum」でインストール
[root@localhost ~]# yum install cmake
1-2. 「ncurses」のインストール
[root@localhost ~]# yum install ncurses ncurses-devel
2. mysqlユーザーの作成
[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd mysql -g mysql -M -s /sbin/nologin
↓uid gidを指定して作成する場合
[root@localhost ~]# groupadd mysql -g 27
[root@localhost ~]# useradd mysql -u 27 -g 27 -M -s /sbin/nologin
uidを指定しないでユーザーを作成したとき、ログイン時に「mysql」ユーザーが表示される場合があります。もし、気になる方は、uidを指定してユーザーの作成をしてください
3. mysql本体のインストール
cmakeでのインストール作業は、「configure」の時とコンパイルの引数が違うので注意してください。
[root@localhost src]# tar zxvf mysql-5.5.10.tar.gz
[root@localhost src]# cd mysql-5.5.10
[root@localhost mysql-5.5.10]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_PIC=1
//eucでインストールする場合
[root@localhost mysql-5.5.10]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=ujis -DDEFAULT_COLLATION=ujis_japanese_ci -DWITH_EXTRA_CHARSETS=all -DWITH_PIC=1
[root@localhost mysql-5.5.10]# make
[root@localhost mysql-5.5.10]# make install
(メモ)
MySQLのconfigure時に–with-picを指定するとgccに”-fPIC”フラグが渡されてMySQLの静的ライブラリが再配置可能になり、他の共有オブジェクトへのリンクが可能となります。
3. mysql設定
[root@localhost mysql]# cd /usr/local/mysql/
[root@localhost mysql]# chown -R mysql:mysql /usr/local/mysql
[root@localhost mysql]# chmod -R 777 /usr/local/mysql/data
データベースの初期化
mysqlインストールしたフォルダ内で「mysql_install_db」を実行する
[root@localhost mysql]# /usr/local/mysql/
[root@localhost mysql]# ./scripts/mysql_install_db
(注意)
my.cnfファイルを先に作成するとエラーになるときがあります。
mysqlをインストールしたフォルダーで実行しなと下記のエラーになります。
FATAL ERROR: Could not find ./bin/my_print_defaults
起動ファイルの作成
[root@localhost mysql]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
mysqlの起動とログイン
[root@localhost mysql]# /etc/init.d/mysqld start
[root@localhost mysql]# /usr/local/mysql/bin/mysql -u root -p
4. mysqlの初期起動設定
[root@localhost mysql]# chkconfig mysqld on
[root@localhost mysql]# chkconfig –list | grep mysqld
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
(過去の作業)
mysqlを「configure」でインストールするときは、「mysqlのインストールと初期設定(OS:CentOS 64bitにて)」に記載しているので、こちらを参考にしてください。
(参考サイト)
http://d.hatena.ne.jp/masudaK/20110224/1298548611
http://www.terut.net/?p=364
(失敗談 )
以下のような「cmake」文でコンパイルしたとき、
[root@localhost mysql-5.5.10]# cmake . -DDEFAULT_CHARSET=utf8 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
mysqlをエラー起動時に以下のようなエラーが出ました。
Starting MySQL. ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid)
mysqlの起動時のログを見ると、文字コードの設定に問題があったので上記のようにコンパイルしなをしました。(↓ログファイル)
[root@localhost mysql]# tail -n 50 /usr/local/mysql/data/localhost.localdomain.pid
(失敗談 その2)
mysqlを起動するときに下記のエラーが起きました。対策として、my.cnfファイルの変更で対応しました。
Starting MySQL.The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid).
[root@localhost mysql]# vi /etc/my.cnf
#datadir=/var/lib/mysql
#socket=/var/lib/mysql/mysql.sock
↓
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock