MySQL

データベースMySQLについて

 

インストールおよび環境設定

 ・CentOS / RedHat  ・Debian  ・Windows  ・Macintosh

 

  • MySQL 5.5 から 5.7へアップグレード(Debian Jessieの場合)

まず、データベースのバックアップ、現状の確認、MySQLを停止、apt-get remove でMySQL 5.5 を削除、MySQL 5.7 インストール、MySQL再起動の手順です。

dpkg -l | grep 'mysql'  で現状の確認

削除するMySQL 5.5 環境の確認(mysql-client  mysql-server  mysql-common  mysql-community-client  mysql-community-server  mysql-utilites など)

インストール ここを参考に  

mysql-server 再起動

MySQL 5.5から5.7へプログラムをアップグレードした後、データベースをアップグレードします。

Linuxのコマンドラインで、 $ sudo mysql_upgrade -uroot -p

 

  • MySQL 5.7 から 8 へのアップグレード(Ubuntu 18.04の場合)

アップグレードの手順 ここを参考に  

  • Add MySQL APT repository
  • Update APT index and install MySQL server
  • Manage mysql.service

 

  • Mariadb-server のインストール(Debian 10 buster)

Debian 8 や Debian 9 からDebian 10へMySQLをアップグレードした場合など、MySQLおよびMariaDBの設定環境が混在して、MySQLが起動しない場合がありました。

apt remove --purge コマンドでも設定ファイルなどが削除されない場合があります。

my.cnf の設定などは、次のサイトを参考に確認し、調整します。https://beyondjapan.com/blog/2016/03/2002-mysql-socket-error/

それでも動作が不安定、起動しない場合は、Debian 10を再インストールすることも解決策です。

 

  • MariaDB-server 10.5 へのアップグレード (Debian 9 Stretch)

アップグレードの手順  ここを参考に

  • Data Backup
  • uninstall old version
  • install new version
  • start server
  • upgrading data directory
  • test 

 

  • MariaDB 10.1 から 10.3 へのアップグレード (Debian 9)

アップグレードの手順  ここを参考に

 

  • MariaDB-server 10.5 へのアップグレード (Debian 10 Buster)

アップグレードの手順  ここを参考に

  • Data Backup
  • uninstall old version
  • install new version
  • start server
  • upgrading data directory
  • test 

 

  • MariaDB の my.cnf (Ubuntu Ubuntu 20.04.6 LTS)

Ubuntuではデフォルトで /etc/my.cnf ファイルがないので、自分で追加しました。他の設定方法もあるようですが。

/etc/my.cnfに以下の内容を追記

[mysqld]
innodb_buffer_pool_size=4G
max_allowed_packe=20M
innodb_log_buffer_size=256M
innodb_thread_concurrency=24

MariaDB再起動  sudo systemctl restart mysql    sudo systemctl restart mysqld

 

local以外の外部から接続する設定

作業中です。

 

 

コマンドの基礎

 

MySQLユーザーのパスワードを設定

環境: MySQL 5.0

・GRANT文でユーザー登録、パスワード指定

mysql > GRANT SELECT ON データベース名.フィールド名 TO 'ユーザー'@'ホスト' IDENTIFIED BY 'パスワード';

・SET PASSWORD文でパスワード設定

mysql > SET PASSWORD FOR 'ユーザー'@'ホスト'=PASSWORD('パスワード');

・UPDATE文でパスワード設定

mysql > UPDATE user SET Password=PASSWORD('パスワード') WHERE User='ユーザー' AND Host='ホスト';

mysql > FLUSH PRIVILEGES;

※ 権限テーブルを直接変更した場合は、FLUSH PRIVILEGES を実行し、テーブルを再度読み込み、権限の変更を反映させます。 mysqladminコマンドの場合 $ mysqladmin -uユーザー -hホスト password パスワード ・ユーザー登録 あらゆる操作ができるユーザーを登録

mysql > GRANT ALL PRIVILEGES ON *.* TO ユーザー IDENTIFIED BY 'パスワード'

mysql > GRANT ALL PRIVILEGES ON *.* TO 'ユーザー'@'ホスト' IDENTIFIED BY 'パスワード';

・ユーザーの削除

mysql > DROP USER 'ユーザー'@'ホスト';

 

データベースの作成、削除

 

・mysqladminを使う方法

$ mysqladmin -uroot -p create データベース名

$ mysqladmin -uroot -p drop データベース名

・SQLでの場合

mysql > CREATE DATABASE データベース名;

mysql > DROP DATABASE データベース名;

 

データベースのダンプ

・mysqldumpコマンドの場合

gzipで圧縮

# mysqldump -u user -p データベース名 | gzip > dbname.dump.gz

 

リストア(インポート)する場合

zcat dbname.dump.gz | mysql -u user -p データベース名

パスワードはコマンドラインで入力します

sudoの場合は sudo zcat インポートファイル.sql.gz | sudo mysql -uユーザ名 -pパスワード DB名

 

すべてのデータベースのバックアップとリストア

・mysqldumpコマンドの場合

mysqldump -u root -p --all-databases > ~/backup.sql

cp -r /etc/mysql ~/

・リストア

mysql -u root -p < ~/backup.sql

 

 

オープンソースソフトウェア: