アプリケーション開発ポータルサイト
ServerNote.NET
Amazon.co.jpでPC関連商品タイムセール開催中!
カテゴリー【MySQLDebian
【Debian】MariaDBを消去してMySQL Comunnity Serverを入れる【FreeBSD】
POSTED BY
2023-10-11

Debianでしか確認できていないが、MySQLを入れようとして、

apt install mysql-server

とすると、本家のMySQLではなく「MariaDB」なるものがインストールされる。
おそらく政治的なものだろうが、本家のMySQLの開発が止まったわけでも有料になったわけでもないし、なんかモヤモヤするので、当方は一旦全部アンインストールして本家のMySQL Community Sererをインストールすることにした。

既存のMySQL(正体はMariaDB)を削除する

dpkg -l | grep mysql

# 出てくるものすべて正体はMariaDBなので、1つ1つ全部消す。
# 例)
apt remove --purge libmysqlclient-dev
apt remove --purge libmysqlclient20
apt remove --purge mysql-apt-config
apt remove --purge mysql-client
apt remove --purge mysql-common
apt remove --purge mysql-server
# 例に出てないものもmysqlとつくものはすべて消すべし。

apt autoremove # 後処理

MySQL Community Server のインストールは
https://linuxconfig.org/how-to-install-mysql-community-server-on-debian-9-stretch-linux
そのまま行えばうまくいったのでメモ。以降コマンドはすべてrootで行う。

aptリポジトリに追加

wget http://repo.mysql.com/mysql-apt-config_0.8.13-1_all.deb
apt install gdebi-core
gdebi mysql-apt-config_0.8.13-1_all.deb
# どのバージョンをインストールするか聞かれるので選ぶ

この状態ではまだ、
https://tecadmin.net/expired-key-expkeysig-with-apt/
にあるようにキーが古くupdateで警告が出る。

apt-key list

/etc/apt/trusted.gpg
--------------------
pub   dsa1024 2003-02-03 [SCA] [expired: 2019-02-17]
      A4A9 4068 76FC BD3C 4567  70C8 8C71 8D3B 5072 E1F5
uid           [ expired] MySQL Release Engineering <mysql-build@oss.oracle.com>

期限切れになっているキーがあることがわかる。

apt install dirmngr
apt-key adv --keyserver keys.gnupg.net --recv-keys 8C718D3B5072E1F5

とすれば、キーが更新される。

apt-key list
/etc/apt/trusted.gpg
--------------------
pub   dsa1024 2003-02-03 [SCA] [expires: 2022-02-16]
      A4A9 4068 76FC BD3C 4567  70C8 8C71 8D3B 5072 E1F5
uid           [ unknown] MySQL Release Engineering <mysql-build@oss.oracle.com>

これでaptリポジトリの準備は整ったのでインストール。

apt update
apt install mysql-server libmysqlclient-dev

今度はちゃんとインストール対象がMySQL Community Serverになるはずである。
インストール中のコンフィグはバージョンが5.7になっており、Enabled,Disabledを確認してOK
インストール中設定するAdmin(root)パスワードはかなり強くなくてはいけない。
インストール中Adminパスが聞かれなかった場合、初期パスワードは

/var/log/mysqld.log

に出力されているはずなので、取っておくこと。

<FreeBSDの場合>
いまのところMariaDBが出現することはないので、これまでの手順は不要。
普通にPortsからインストールして、起動設定する。

cd /usr/ports/databases/mysql57-server/
make install

/etc/rc.conf
mysql_enable="YES"

service mysql-server start

<初回セットアップ>

mysql_secure_installation
secure enough. Would you like to setup VALIDATE PASSWORD plugin? : N
Change the password for root ? : N # 変更する場合ここで「Y」とする
Remove anonymous users? : Y
Disallow root login remotely? : Y
Remove test database and access to it? : Y
Reload privilege tables now? : Y
All done!

# コンフィグファイル

/etc/mysql/conf.d/mysql.cnf

[mysql]
default-character-set = utf8

[client]
default-character-set = utf8

/etc/mysql/mysql.conf.d/mysqld.cnf

# bind-address  = 127.0.0.1 #リモート接続を許可する場合comment out
character-set-server = utf8
collation-server = utf8_general_ci
default_password_lifetime = 0

# FreeBSDの場合上記設定まとめて/usr/local/etc/mysql/my.cnf

# 再起動

/etc/init.d/mysql restart # FreeBSDの場合 service mysql-server restart

# 管理ユーザを作成し全権限を委譲(以降rootは不要)

mysql -u root -p
use mysql

# You must reset your password using ALTER USER statement before executing this statement. と言われてしまった場合再度パスワード変更する

set password for root@localhost=password('新パスワード');

grant all privileges on *.* to hogeuser@"%" identified by 'hogepass' with grant option;

※hogepassはちゃんとしたパスワードに置き換え

# .bash_secure などにエイリアスを切っておくと楽

alias mysql='mysql -u hogeuser -phogepass'
alias mysqldump='mysqldump -u hogeuser -phogepass'
※本記事は当サイト管理人の個人的な備忘録です。本記事の参照又は付随ソースコード利用後にいかなる損害が発生しても当サイト及び管理人は一切責任を負いません。
※本記事内容の無断転載を禁じます。
【WEBMASTER/管理人】
自営業プログラマーです。お仕事ください!
ご連絡は以下アドレスまでお願いします★

☆ServerNote.NETショッピング↓
ShoppingNote / Amazon.co.jp
☆お仲間ブログ↓
一人社長の不動産業務日誌
【キーワード検索】