web-dev-qa-db-ja.com

MySQL 8.0.12でのlower_case_table_namesの設定

Ubuntu 16.0.4でバージョンMySQL 8.0.12をコンパイルしました。

Webサイトの指示に従い、次のmy.cnfファイルを作成した後:

[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
port=3306
log-error=/usr/local/mysql/data/localhost.localdomain.err
user=mysql
secure_file_priv=/usr/local/mysql/mysql-files
local_infile=OFF

log_error = /var/log/mysql/error.log

# Remove case sensitive in table names
lower_case_table_names=1

次のエラーが発生します。

2018-08-11T19:45:06.461585Z 1 [ERROR] [MY-011087] [Server] Different lower_case_table_names settings for server ('1') and data dictionary ('0').

データディクショナリをサーバー設定に合わせるには何を変更すればよいですか?

4
asuka

この link のとおり、lower_case_table_namesは--initializeオプションと一緒に設定する必要があります。

1
Praveen E

私は同じ問題を抱えており、ここで説明されているように https://bugs.mysql.com/bug.php?id=90695 これはそのままではサポートされていません。だから私がそれを機能させるために私がした回避策はこれでした buntu 18.04でlower_case_table_names = 1はmysqlを開始させません

1

MySQLドキュメントによると

lower_case_table_namesは、サーバーの初期化中にのみ構成できます。 サーバーの初期化後にlower_case_table_names設定を変更することは禁止されています。

https://dev.mysql.com/doc/refman/8.0/en/identifier-case-sensitiveivity.html

0
Avinash Pawar

この問題を修正するには、

  1. Binフォルダー(/ usr/local/mysql/bin)内で次のコマンドを使用して、既存のdbスキーマのバックアップを取るだけです./ mysqldump -uroot -p password> dump.sql

  2. バックアップが取得されたら、コマンドrm -rf dataを使用して、Mysql Home(/ usr/local/mysql /)の既存のデータフォルダーを削除します。

  3. MYSQLDセクション(/etc/my.cnf)の下のmy.cnfに "lower_case_table_names = 1"として設定を追加します

  4. Binディレクトリ(/ usr/local/mysql/bin)内で次のコマンドを使用して、データディレクトリを初期化します。

セキュアモードの場合 ./mysqld --defaults-file =/etc/my.cnf --initialize --user = mysql --console

非セキュアモードの場合 ./mysqld --defaults-file =/etc/my.cnf --initialize-insecure --user = mysql --console

  1. データディレクトリが初期化されると、安全でないモードの場合インストールを再度繰り返し、安全なモードの場合データディレクトリの初期化の実行中に初期化されるrootパスワードを使用します。

  2. (/ usr/local/mysql/bin)ディレクトリ内のコマンドを使用して、Mysqlサーバー内の既存のダンプファイルをインポートします。

./ mysql -uroot -p password <file.sql

0
ARUN DEEPAK

あなたの問題を解決するには:

1. mysqlを停止します。

systemctl stop  mysql

2.データディレクトリをクリーンアップするか、デフォルトを変更します。データベースにデータがある場合、以下は新規インストール用ですBACK UPそれらを事前に

rm -rf /var/lib/mysql

3. my.cnfにlower_case_table_names = 1を挿入します。

[mysqld]
lower_case_table_names=1

4.やり直す

systemctl start mysqld
0
Behdad