MySQL關鍵字,MySQL 字符集問題及安全的更新操作

 2023-10-18 阅读 30 评论 0

摘要:一、字符集亂碼 1.操作系統字符集 [root@mysql5 ~]# cat /etc/system-release /etc/sysconfig/i18n CentOS release 6.5 (Final) # 操作系統發行版本 LANG="en_US.UTF-8"      # 語言版本 SYSFONT="latarcyrheb-sun16" 2.設置MySQL客戶端 se

一、字符集亂碼

1.操作系統字符集

[root@mysql5 ~]# cat /etc/system-release /etc/sysconfig/i18n 
CentOS release 6.5 (Final) # 操作系統發行版本
LANG="en_US.UTF-8"      # 語言版本
SYSFONT="latarcyrheb-sun16"

2.設置MySQL客戶端

set names utf8;

[mysql]

default-character-set=utf8

3.設置MySQL服務端

[mysqld]
# mysql5.1
default-character-set=utf8
# mysql5.5
character-set-server=utf8

4.庫表

create database zwq default character set utf8 collate utf8_general_ci;

5、系統字符集與數據庫字符集的關聯

[root@mysql5 ~]# cat /etc/sysconfig/i18n ; mysql -e "show variables like 'character_set%';";
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
+--------------------------+----------------------------------+
| Variable_name            | Value                          |
+--------------------------+----------------------------------+
| character_set_client     | utf8   $LANG決定           |
| character_set_connection | utf8   $LANG決定                  |
| character_set_database   | utf8   屬性 character_set_server  |
| character_set_filesystem | binary                           |
| character_set_results    | utf8   $LANG決定                  |
| character_set_server     | utf8   屬性 character_set_server  |
| character_set_system     | utf8   $LANG決定                  |
| character_sets_dir       | /app/mysql/share/charsets/      |
+--------------------------+-----------------------------------+

?/etc/sysconfig/i18n中的LANG變量決定了 character_set_client、character_set_connection、character_set_results、character_set_system

my.cnf配置項

MySQL關鍵字?[mysqld]

character_set_server 決定了 character_set_database、character_set_server

character_set_filesystem 決定了 character_set_filesystem

set names utf8 決定了?character_set_client、character_set_connection、character_set_results

--default-character-set=utf8 效果跟set names utf8一樣

二、更改已有數據的字符集

MySQL substring,-- 1、建庫建表的語句導出,sed批量修改為utf8? ?

  mysqldump -uroot -proot --default-character-set=latin1 -d zwq > destructer.sql
-- 2、導出所有數據

  mysqldump -uroot -proot --quick --no-create-info --extended-insert --default-character-set=utf8 db_name >db_name_data.sql?
-- 3、修改mysql客戶端和服務端編碼為utf8
-- 4、刪除原有的庫表、數據
-- 5、導入新的建庫建表語句
-- 6、導入mysql的所有數據

三、安全的更新操作

為了防止不加where條件的update語句被執行,需要在 /etc/my.cnf 、 ~/.my.cnf 或 --defaults-file 指定的配置文件中加入

[mysql]
safe-updates=TRUE

?四、將表移動到另一個庫中

-- 方式1
rename table school.student to zwq.student; -- 方式2 alter table zwq.student rename to school.student;

?

MySQL alter?轉載于:https://www.cnblogs.com/zhengwenqiang/p/7965903.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/2/150163.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息