ubuntu24.04LTSにMySQL8.4をインストールしてみた。

ubuntu24.04LTSにMySQL8.4をインストールしてみました。その手順を記載しておきます。作業はrootユーザーで行っています。

まずはリポジトリの取得です。MySQLのダウンロードサイトから「MySQL APT Repository」をクリックします。

リポジトリのセットアップパッケージの「Ubuntu / Debian 」のダウンロードボタンを押下します。

ダウンロード画面になります。アカウントがなければ「No thanks, just start my download.」をクリックします。

ファイルがダウンロードされます。ダウンロードされたファイルは mysql-apt-config_0.8.33-1_all.deb というファイル名でした。リポジトリのインストールをします。

# apt install ./mysql-apt-config_0.8.33-1_all.deb

インストールの途中で「mysql-apt-config を設定しています」のダイアログが出ますので「OK」を選択してリターンキーを押下します。mysql-apt-config は追加でインストールされるパッケージのようです。

リポジトリのインストールができたらパッケージリストの更新をします。

# apt update

apt show でインストールされるMySQLのバージョンを確認しておきます。

# apt show mysql-server

現状(2025年3月)では Version: 8.4.4-1ubuntu24.04 がインストールされます。

それでは mysql-server のインストールをします。

# apt install mysql-server

インストールの途中でMySQLのrootユーザーのパスワードを聞かれますので、入力をします。再入力も求められます。

mysql-server のインストールが終わったらバージョンを確認してみます。

# mysql --version

問題なくインストールできていればバージョンが表示されます。

インストールされた時点でMySQLは起動しています。また自動起動もenabledとなっています。ubuntuではMySQLのサービス名は mysql なので(mysqldではない)statusの確認は以下で行います。

# systemctl status mysql

それではMySQLにログインしてデータベースの作成、ユーザーの作成を行います。

# mysql -u root -p
Enter password:
 :

パスワードは mysql-server をインストールした際に設定したrootのパスワードです。MySQLにログインするとプロンプトは mysql> という表示になります。

データベースの作成をします。

mysql> create database testdb;

testdb はデータベース名です。これは任意でつけることができます。作成したデータベースを確認しておきます。

mysql> show databases;

一覧に testdb が表示されます。

ユーザーを作成します。

mysql> create user ‘testuser’ identified by ‘xxxxx’;

testuser がユーザー名です。ユーザー名も任意でつけてください。xxxxx がパスワードです。

testuser が testdb を使用できるように権限を付与します。

mysql> grant all on testdb.* to ‘testuser’;

これで testuser で testdb データベースに表の作成などができるようになります。一度、MySQLから抜けます。

mysql> exit
Bye

testuser でMySQLにログインしなおします。

$ mysql -u testuser -p
Enter password:
 :

testdb を使用するようにします。

mysql> use testdb;

testuser には tetdb に対して権限を与えていますので表の作成が出来るようになっています。

ASUSのノートパソコンにubuntuを入れようとしたらものすごく大変だった。

ASUSの2022年発売モデルの11.6型ノートパソコン「E210KA」は性能は貧弱ではあるが、値段は安い。CPUはCeleronでメモリは4Gしか積んでいない。windows11を動かそうとするとなかなか大変だろう。なので、ubuntu用に購入したのだけれど、ubuntuのインストールが今までやった中で一番大変だった。Live USBを作成してubuntuをインストールしたことは何度かありますが、E210KA はかなりくせ者でした。。

ASUSのノートパソコンを使わない人にはまったく興味のない話だとは思うけれど、ハマった先人はいたようで、その方のブログ記事はとても参考になりました。助けられました。なので僕も残しておこうと思います。

以下の方々の記事を読ませてもらい後者のtohka383さんのやり方で、なんとかubuntuのインストールができました。

  • Ubuntu22.04をノートPCに入れようと試行錯誤した件 link
  • ASUSのノートにLinuxを入れようとして苦労した話 link

では、ハマったところを書いていきます。

ubuntuの Live USBを作成してインストールを進めていくと途中で「何かがおかしいです」となり、インストールが途中で止まります。以下が画面の写真です。

「mkfs.ext4: Input/Output error while writing out and closing file system」と出ていたことにより、先のブログの事象と同じであると判断して対応に入ります。ただブログ記事を見つけるまで、かなりの苦戦をしています。

まずは、インストールではなくUSBからのubuntu起動に切り替え、手打ちでコマンドを打ちます。


$ sudo modprobe -r sdhci_pci
$ sudo modprobe -r sdhci
$ sudo modprobe sdhci debug_quirks=0x20000
$ sudo modprobe sdhci_pci

これらのコマンドにより現在のセッションでCQEが無効化されるようです。ですので、この状態でubuntuをインストールします。毎回インストールの途中で止まってしまっていたのですが、おまじないが効いたかのようにインストールが進みます。

ノートパソコンへのインストールが終わったら、dfコマンドでファイルシステムの状態を確認しました。パーティション構成は以下のようです。作業はまだ続くので、再起動はまだです

/dev/mmcblk0p1 : /boot/efi
/dev/mmcblk0p2 : /

ここまでの作業ですが、このような感じです。

次に、マウントをするコマンドを打ちます。


$ sudo mount /dev/mmcblk0p2 /mnt
$ sudo mount /dev/mmcblk0p1 /mnt/boot/efi
$ sudo mount --rbind /dev /mnt/dev
$ sudo mount -t proc none /mnt/proc
$ sudo mount --rbind /sys /mnt/sys

コマンドを打つ度に以下のメッセージが表示されました。

mount: (hint) your fstab has been modified, but systemd still uses the old version; use ‘systemctl daemon-reload’ to reload.

このメッセージは /etc/fstab(ファイルシステムのマウント設定ファイル)が変更されたものの、systemdが古い設定を保持しているために表示されているためのようです。デーモンのリロードを実行しました。


$ sudo systemctl daemon-reload

ここまでの作業です。

そして chroot コマンドを実行します。このコマンドを打つとプロンプトが「$」から「#」に変わります。root権限での実行になります。

おそらくここが一番の要だと思うのですが、ASUSのノートパソコンでext4形式にフォーマットができない理由が「eMMCコントローラーのCQE実装のバグ」で、CQEを無効にする唯一のオプションが「options sdhci debug_quirks=0x20000」という設定らしいです。

ですので、この設定をコンフィグファイルに書き込みubuntuに読み込ませることで、CQEの間違い(バグの戻り値?)を無視して先に進むようにするようです。

root権限で以下のコマンドを打ちます。


$ sudo chroot /mnt
# echo "options sdhci debug_quirks=0x20000" > /etc/modprobe.d/sdhci-disable-cqe.conf
# update-initramfs -u -k all
# exit

ブログ記事にあった以下のコマンドですが、こちらはコマンドを打ち間違えました。。


# lsinitramfs /boot/initrd.img-6.11.0-17-generic | grep cqe

とりあえずCQEを無効にするオプションの書き込みはできたのでexitでchrootを抜けました。

マウントの解除をします。


$ sudo umount -l /mnt/sys
$ sudo umount /mnt/proc
$ sudo umount -l /mnt/dev
$ sudo umount /mnt/boot/efi
$ sudo umount /mnt

最後の2つは No such device となってしまいましたが、気にせず進みました。

ここまでの作業です。

ここまで出来たら Live USBを取り外して、システムを再起動します。

そうしたら・・・無事ubuntuが起動しました!

それにしてもASUSは、バグ持ちのコントローラーを基盤に載せたままでそのままにしておくなよなと思った次第です。windowsであれば問題がないから、こんなことを言う人はいないのでしょうけれど。