![如何在 Ubuntu Server 20.04 LTS 上成功安装 lower_case_table_names=1 的 MySQL 8.0?](https://linux22.com/image/1174927/%E5%A6%82%E4%BD%95%E5%9C%A8%20Ubuntu%20Server%2020.04%20LTS%20%E4%B8%8A%E6%88%90%E5%8A%9F%E5%AE%89%E8%A3%85%20lower_case_table_names%3D1%20%E7%9A%84%20MySQL%208.0%EF%BC%9F.png)
让 MySQL 运行起来似乎很麻烦,lower_case_table_names=1
如下所示:
- Ubuntu 18.04 上的 lower_case_table_names=1 不允许 mysql 启动
- MySQL 8.0.12 中的 lower_case_table_names 设置
- 在 CentOS 7 上使用 lower_case_table_names 设置 mysql 8
- Mysql:无法设置 lower_case_table_names 变量
- lower_case_table_names 选项不起作用
我正在尝试在 Ubuntu Server 20.04 LTS 上安装 MySQL 8.0.19。lower_case_table_names=1
在 mysql 已初始化后无法设置,这会在从软件包存储库安装时自动发生。
根据文档服务器系统变量 | sysvar_lower_case_table_names:
但是,对于 Debian 和 Ubuntu 上的 APT 安装,服务器已为您初始化,并且没有机会预先在选项文件中配置设置。因此,您必须
debconf-set-selection
在使用 APT 安装 MySQL 之前使用该实用程序来启用lower_case_table_names
。为此,请在使用 APT 安装 MySQL 之前运行以下命令:sudo debconf-set-selections <<< "mysql-server mysql-server/lowercase-table-names select Enabled"
我在新安装的 Ubuntu Server 20.04 上执行了此操作并运行sudo apt-get install mysql-server
,但它并没有变成lower_case_table_names
1。
如果有的话,我做错了什么?如何成功安装lower_case_table_names
设置为 1 的 MySQL 8.0?
答案1
到目前为止,我可以通过一种变通方法使其工作:lower_case_table_names
在安装后使用新值重新初始化 MySQL。以下是必需的步骤:
- 安装 MySQL:
sudo apt-get update sudo apt-get install mysql-server -y
- 停止 MySQL 服务:
sudo service mysql stop
- 删除 MySQL 数据目录:
sudo rm -rf /var/lib/mysql
- 重新创建 MySQL 数据目录(是的,仅仅删除其内容是不够的):
sudo mkdir /var/lib/mysql sudo chown mysql:mysql /var/lib/mysql sudo chmod 700 /var/lib/mysql
- 添加
lower_case_table_names = 1
到[mysqld]
中的部分/etc/mysql/mysql.conf.d/mysqld.cnf
。 - 使用以下命令重新初始化 MySQL
--lower_case_table_names=1
:sudo mysqld --defaults-file=/etc/mysql/my.cnf --initialize --lower_case_table_names=1 --user=mysql --console
- 启动 MySQL 服务:
sudo service mysql start
- 检索 MySQL 用户新生成的密码
root
:sudo grep 'temporary password' /var/log/mysql/error.log
- 通过以下方式更改 MySQL 用户的密码
root
:
并执行:sudo mysql -u root -p
之后,或者无论如何调用“强化”脚本:ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPa$$w0rd';
sudo mysql_secure_installation
此后,您可以lower_case_table_names
通过进入 MySQL shell 来验证设置:
sudo mysql -u root -p
并执行:
SHOW VARIABLES LIKE 'lower_case_%';
预期输出:
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_file_system | OFF |
| lower_case_table_names | 1 |
+------------------------+-------+
答案2
也可以创建目录/etc/mysql/mysql.conf.d/
并mysqld.cnf
在其中进行相应的操作在安装 mysql-server 之前。
如果您配置lower_case_table_names = 1
然后mysqld.cnf
安装服务器,它将以小写字母初始化。