Oracle LinuxにMySQLのリポジトリがあるようだったので、MySQLをインストールしようとしたがエラーになってインストール出来ませんでした。
$ sudo dnf install mysql-community-server Last metadata expiration check: 3:44:41 ago on Mon 29 Jan 2024 01:20:33 PM GMT. All matches were filtered out by modular filtering for argument: mysql-community-server Error: Unable to find a match: mysql-community-server
MySQL 8.0のRPMファイルをインストールします。最新版RPMファイルはこちらで確認できます。
$ sudo rpm -Uvh http://dev.mysql.com/get/mysql80-community-release-el8-9.noarch.rpm
既存のモジュールを無効にするようメッセージが出たので無効にします。
$ sudo yum module -y disable mysql
この状態でMySQLをインストールすると、どのバージョンがインストールされるか確認しOKであればインストールします。
$ sudo dnf info mysql-community-server $ sudo dnf install mysql-community-server
これでインストール完了です。
$ mysql --version mysql Ver 8.0.36 for Linux on x86_64 (MySQL Community Server - GPL)
サービスを起動します。
$ sudo systemctl start mysqld
状態を確認します。
$ systemctl status mysqld
● mysqld.service - MySQL Server
Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2024-01-29 17:33:42 GMT; 6s ago
...
初回起動時のログに初期パスワードが記載されているので確認します。
$ vi /var/log/mysqld.log
初期パスワードを使用してログインします。
$ mysql -u root -p
パスワードを再設定します。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '<password>';
MySQLを再起動します。
$ sudo systemctl restart mysqld
ユーザーを作成します。
mysql> create user '<user name>'@'%' identified by '<password>';
外部からの接続可能な権限付与します。
mysql> grant all on *.* to '<user name>'@'%' with grant option; mysql> flush privileges;
穴あけ
# sudo firewall-cmd --add-service=mysql --zone=public --permanent # sudo firewall-cmd --add-port=3306/tcp --permanent
再起動
# sudo firewall-cmd --reload
状態確認
# sudo firewall-cmd --list-services