Похоже, что при запуске MySQL с lower_case_table_names = 1
возникает много проблем, что можно увидеть в:
Я пытаюсь установить MySQL 8.0.19 на сервере Ubuntu 20.04 LTS. lower_case_table_names = 1
нельзя установить после того, как mysql уже инициализирован, что происходит автоматически при установке из репозиториев пакетов.
Согласно документации Системные переменные сервера | sysvar_lower_case_table_names :
Для установок APT в Debian и Ubuntu, инициализирован для вас, и нет возможности настроить установка в файле опций заранее. Поэтому вы должны использовать
Утилита debconf-set-selection
перед установкой MySQL с использованием APT для включитьlower_case_table_names
. Для этого запустите эту команду до установка MySQL с помощью APT:sudo debconf-set-selections <<< "mysql-сервер mysql-сервер / нижний регистр-таблицы-имена включен"
Я сделал это на только что установленном Ubuntu Server 20.04 и запустил sudo apt-get install mysql-server
впоследствии, но он не изменил lower_case_table_names
на 1.
Если вообще, что я делаю не так? Как я могу успешно установить MySQL 8.0 с lower_case_table_names
, установленным в 1?
So far, I can get it to work with a workaround: by re-initializing MySQL with the new value for lower_case_table_names
after its installation. These are the requiered steps:
sudo apt-get update
sudo apt-get install mysql-server -y
sudo service mysql stop
sudo rm -rf /var/lib/mysql
sudo mkdir /var/lib/mysql
sudo chown mysql:mysql /var/lib/mysql
sudo chmod 700 /var/lib/mysql
lower_case_table_names = 1
to the [mysqld]
section in /etc/mysql/mysql.conf.d/mysqld.cnf
.--lower_case_table_names=1
:
sudo mysqld --defaults-file /etc/mysql/my.cnf --initialize --lower_case_table_names=1 --user=mysql --console
sudo service mysql start
root
:
sudo grep 'temporary password' /var/log/mysql/error.log
root
either by:
sudo mysql -u root -p
and executing:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPa$$w0rd';
afterwards, OR by calling the "hardening" script anyway:
sudo mysql_secure_installation
After that, you can verify the lower_case_table_names
setting in MySQL by executing:
SHOW VARIABLES LIKE 'lower_case_%';
Expected output:
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_file_system | OFF |
| lower_case_table_names | 1 |
+------------------------+-------+