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').
データディクショナリをサーバー設定に合わせるには何を変更すればよいですか?
この link のとおり、lower_case_table_namesは--initializeオプションと一緒に設定する必要があります。
私は同じ問題を抱えており、ここで説明されているように https://bugs.mysql.com/bug.php?id=90695 これはそのままではサポートされていません。だから私がそれを機能させるために私がした回避策はこれでした buntu 18.04でlower_case_table_names = 1はmysqlを開始させません
MySQLドキュメントによると
lower_case_table_namesは、サーバーの初期化中にのみ構成できます。 サーバーの初期化後にlower_case_table_names設定を変更することは禁止されています。
https://dev.mysql.com/doc/refman/8.0/en/identifier-case-sensitiveivity.html
この問題を修正するには、
Binフォルダー(/ usr/local/mysql/bin)内で次のコマンドを使用して、既存のdbスキーマのバックアップを取るだけです./ mysqldump -uroot -p password> dump.sql
バックアップが取得されたら、コマンドrm -rf dataを使用して、Mysql Home(/ usr/local/mysql /)の既存のデータフォルダーを削除します。
MYSQLDセクション(/etc/my.cnf)の下のmy.cnfに "lower_case_table_names = 1"として設定を追加します
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
データディレクトリが初期化されると、安全でないモードの場合インストールを再度繰り返し、安全なモードの場合データディレクトリの初期化の実行中に初期化されるrootパスワードを使用します。
(/ usr/local/mysql/bin)ディレクトリ内のコマンドを使用して、Mysqlサーバー内の既存のダンプファイルをインポートします。
./ mysql -uroot -p password <file.sql
あなたの問題を解決するには:
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