LoginSignup
0
1

More than 5 years have passed since last update.

CentOS7に mysql-community-server をインストールし、LAN内の別マシンからアクセス可能にする。

Last updated at Posted at 2018-10-17

MySQL と競合しそうなMariaDBを削除しておく

$ sudo yum remove mariadb-libs
$ sudo rm -rf /var/lib/mysql

CentOS 7 に MySQL 公式の yum リポジトリを追加

$ sudo rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

MySQL のインストール

$ sudo yum install mysql-community-server mysql-community-client

サービスの起動

$ sudo systemctl start mysqld

初回起動時に自動設定されたパスワードを確認

$ sudo cat /var/log/mysqld.log | grep password
2018-10-17T02:30:35.176475Z 1 [Note] A temporary password is generated for root@localhost: password

mysql_secure_installationを実行

$ mysql_secure_installation
Change the password for root ? ((Press y|Y for Yes, any other key for No) :
#=> Yをプレスし、任意のパスワードに変更

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をプレスし、rootをローカルに限定

Remove test database and access to it? (Press y|Y for Yes, any other key for No) : 
#=> Yをプレスし、テストデータベースを削除

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : 
#=> Yをプレスし、権限テーブルをリロード

設定ファイルの編集

$ sudo vi /etc/my.cnf

[mysqld] セクションに以下を追記

# ソケット通信だけでなく、LAN内の別マシンから接続させたい
port = 3306
bind-address = 0.0.0.0

# パスワードの有効期限切れを防ぐ
default_password_lifetime = 0
# パスワードのバリデーションを切る
validate_password_policy=LOW
validate_password_length=4

サービスを再起動

$ sudo systemctl restart mysqld

リモートアクセスを許可するユーザを作成

$ mysql -u root -p

mysql> CREATE USER 'username'@'192.168.%' IDENTIFIED BY 'password';
mysql> GRANT ALL PRIVILEGES ON *.* TO  'username'@'192.168.%';
mysql> FLUSH PRIVILEGES;

CentOS7からファイアウォールが「iptables」から「firewalld」に変更されている。mysqlのポートを開放し、サービスを再起動。

$ sudo firewall-cmd --add-service=mysql --zone=public --permanent
$ sudo systemctl restart firewalld

別のマシンより接続テスト。繋がった。

$ mysql -h $MYSQL_SERVER_ADRESS -u username -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.23 MySQL Community Server (GPL)

Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> 

参考にした記事

https://qiita.com/Thort/items/637b32b6c850a62af8de
https://qiita.com/haminiku/items/56fcb578d86abcd0b571

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1