ブログのDBをTiDBクラウドのサーバーレスに移行してみた

前回、TiDBクラウド(Serverless)にWordPressのDB(MySQL)をバックアップしましたが、直接このバックアップを使ってWordPressが使えるかやってみました。まずは以下のようにdocker-compose.ymlに記述するDBの設定をTiDBのものに変更。また、イメージが古く(bullseyeがベース)、証明書が古かったので、docker pull wordpress:latestで最新版(bookwormがベース)にイメージを更新しました。ちなみにこちらによるとbullseyeは2024年8月14日がEOL(通常のサポート期間の終了)だったようです。

services:
  wordpress:
    container_name: wordpress
    image: wordpress:latest
    environment:
      WORDPRESS_DB_HOST: xxxxxxxxxxxx.prod.aws.tidbcloud.com:4000
      WORDPRESS_DB_USER: xxxxxxxxxxxx.root
      WORDPRESS_DB_PASSWORD: xxxxxxxxxxxx
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - wordpress:/var/www/html
    restart: always
    ports:
      - "80:80"

volumes:
  db_data:
  wordpress:

さらに、wordpressコンテナに入って/var/www/html/wp_config.phpに以下を追記します。

/** Use SSL for TiDB */
define('MYSQL_CLIENT_FLAGS', MYSQLI_CLIENT_SSL);

これだけだと投稿一覧が表示されませんでした。こちらを参考にTiDB側の設定を変更します。

mysql -h tidbのホスト名 -P 4000 -u tidbのユーザー -p -e "SET GLOBAL tidb_enable_noop_functions=1"

以上の手順で動くようになりました。

コメント

Copied title and URL