2024-10-10

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>
</mysql-build>
期限切れになっているキーがあることがわかる。
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>
</mysql-build>
これで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'
※本記事内容の無断転載を禁じます。
ご連絡は以下アドレスまでお願いします★
Wav2Lipのオープンソース版を改造して外部から呼べるAPI化する
Wav2Lipのオープンソース版で静止画の口元のみを動かして喋らせる
【iOS】アプリアイコン・ロゴ画像の作成・設定方法
オープンソースリップシンクエンジンSadTalkerをAPI化してアプリから呼ぶ【2】
オープンソースリップシンクエンジンSadTalkerをAPI化してアプリから呼ぶ【1】
【Xcode】iPhone is not available because it is unpairedの対処法
【Let's Encrypt】Failed authorization procedure 503の対処法
【Debian】古いバージョンでapt updateしたら404 not foundでエラーになる場合
ファイアウォール内部のWindows11 PCにmacOS Sequoiaからリモートデスクトップする
Windows11+WSL2でUbuntuを使う【2】ブリッジ接続+固定IPの設定
進研ゼミチャレンジタッチをAndroid端末化する
VirtualBoxの仮想マシンをWindows起動時に自動起動し終了時に自動サスペンドする
Googleスプレッドシートを編集したら自動で更新日時を入れる
Androidホームで左にスワイプすると出てくるニュース共を一切表示させない方法
【C/C++】小数点以下の切り捨て・切り上げ・四捨五入
Windows11のコマンドプロンプトでテキストをコピーする
size_tとssize_tを使い分けてSegmentation Faultを予防する
【C++】staticメンバ変数がundefined referenceとエラーになる場合