Ask Ubuntu Asked on December 15, 2021
It seems to be a lot of trouble to get MySQL running with lower_case_table_names=1
as can be seen in:
I’m trying to install MySQL 8.0.19 on Ubuntu Server 20.04 LTS. lower_case_table_names=1
cannot be set after mysql has already been initialized, which happens automatically when installing from the package repositories.
According to the documentation Server System Variables | sysvar_lower_case_table_names:
For APT installations on Debian and Ubuntu, however, the server is
initialized for you, and there is no opportunity to configure the
setting in an option file beforehand. You must therefore use the
debconf-set-selection
utility prior to installing MySQL using APT to
enablelower_case_table_names
. To do so, run this command before
installing MySQL using APT:sudo debconf-set-selections <<< "mysql-server mysql-server/lowercase-table-names select Enabled"
I did that on a freshly installed Ubuntu Server 20.04 and ran sudo apt-get install mysql-server
afterwards, but it did not change lower_case_table_names
to 1.
If at all, what am I doing wrong? How can I successfully install MySQL 8.0 with lower_case_table_names
set to 1?
It is also possible to create the directory /etc/mysql/mysql.conf.d/
and the corresponding mysqld.cnf
in there before installing mysql-server.
If you configure lower_case_table_names = 1
in mysqld.cnf
and then install the server, it will initialize with lower case.
Answered by Panki on December 15, 2021
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 by entering the MySQL shell:
sudo mysql -u root -p
and executing:
SHOW VARIABLES LIKE 'lower_case_%';
Expected output:
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_file_system | OFF |
| lower_case_table_names | 1 |
+------------------------+-------+
Answered by stackprotector on December 15, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP