mysql8.0更改utf-8
时间: 2023-08-12 11:06:34 浏览: 216
要更改MySQL 8.0的字符集为UTF-8,可以按照以下步骤进行操作:
1. 登录MySQL
在终端中输入以下命令登录到MySQL:
sudo mysql -u root -p
输入密码后即可登录。
2. 修改MySQL配置文件
编辑MySQL的配置文件my.cnf。在终端中输入以下命令:
sudo vi /etc/my.cnf
在文件中找到 [mysqld] 部分,并添加以下内容:
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
保存并关闭文件。
3. 重启MySQL服务
在终端中输入以下命令重启MySQL服务:
sudo systemctl restart mysqld
4. 验证字符集设置
重新登录到MySQL,并执行以下查询语句验证字符集设置:
SHOW VARIABLES LIKE 'character\_set\_server';
SHOW VARIABLES LIKE 'collation\_server';
确保字符集和校对规则都显示为utf8。
这样就完成了将MySQL 8.0的字符集更改为UTF-8的操作。
相关问题
MySQL8.0 1071 - Specified key was too long; max key length is 3072 bytes
MySQL8.0中出现"Specified key was too long; max key length is 3072 bytes"错误是因为MySQL8.0中默认使用的字符集为utf8mb4,而utf8mb4字符集下一个字符最多占用4个字节,因此在创建索引时,索引长度不能超过3072/4=768个字符。
解决方法有两种:
1. 修改字符集为utf8或者latin1,这样一个字符最多只占用3个字节或者1个字节,索引长度就可以超过768个字符。
2. 修改索引长度,将索引长度缩短到768个字符以内。
下面是两种解决方法的具体实现:
1. 修改字符集为utf8或者latin1
```sql
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8;```
或者
```sql
ALTER TABLE table_name CONVERT TO CHARACTER SET latin1;
```
2. 修改索引长度
```sql
ALTER TABLE table_name DROP INDEX index_name;
ALTER TABLE table_name ADD INDEX index_name (column_name(length));
```
其中,length为索引长度,需要根据实际情况进行调整。
jdbc.url = jdbc:mysql://localhost:3306/examination_system?useUnicode=true&characterEncoding=UTF-8,8.0版本怎么改写
在 MySQL 8.0 版本中,数据库驱动的包名发生了变化,因此需要修改 JDBC 数据库连接字符串中的驱动类名。同时,MySQL 8.0 默认使用了 caching_sha2_password 插件进行身份验证,而老版本的 JDBC 驱动可能不支持该插件,因此还需要添加一个参数来指定使用旧的身份验证插件。修改后的 JDBC 数据库连接字符串如下:
```
jdbc:mysql://localhost:3306/examination_system?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true&useLegacyDatetimeCode=false&jdbcCompliantTruncation=false&sessionVariables=sql_mode='NO_ENGINE_SUBSTITUTION'&nullCatalogMeansCurrent=true&nullNamePatternMatchesAll=true&autoReconnect=true&verifyServerCertificate=false
```
这个字符串中包含了一些新的参数,如指定使用 UTC 时区,禁用 SSL,启用公钥检索等。你可以根据自己的需求调整这些参数。
阅读全文