MySQL数据库编码问题
在程序开发中,有时会被字符乱码的问题所困扰。对此,必须理解 MySQL 的字符集编码设置的原理:在MySQL中,默认使用的是lartin1,也就是ISO8859-1字符集编码。这是一种8位的编码,适用于所有西欧字符。而对于汉字等是不合适的。最好、最通用的编码格式是utf-8,UTF-8(8 位元 Universal Character Set/Unicode Transformation Format)是一种针对Unicode 的可变长度字节编码的Unicode字符集。它对英文使用8位(即一个字节),中文使用24位(三个字节)来编码。所以对于8位的西欧字符集来说,更能比较节省空间,而又能够有效地表示汉字等字符。 MySQL服务器对字符集和校对规则有4个级别的默认设置:服务器级、数据库级、表级和连接级。
一、MySQL默认字符集
MySQL对于字符集的指定可以细化到一个数据库,一张表,一列,应该用什么字符集。但是,传统的程序在创建数据库和数据表时并没有使用那么复杂的配置,它们用的是默认的配置:
(1)编译MySQL 时,指定了一个默认的字符集,这个字符集是 latin1;
(2)安装MySQL 时,可以在配置文件 (my.ini) 中指定一个默认的的字符集,如果没指定,这个值继承自编译时指定的;
(3)启动mysqld 时,可以在命令行参数中指定一个默认的的字符集,如果没指定,这个值继承自配置文件中的配置,此时 character_set_server 被设定为这个默认的字符集;
(4)当创建一个新的数据库时,除非明确指定,这个数据库的字符集被缺省设定为character_set_server;
(5)当选定了一个数据库时,character_set_database 被设定为这个数据库默认的字符集;
(6)在这个数据库里创建一张表时,表默认的字符集被设定为 character_set_database,也就是这个数据库默认的字符集;
(7)当在表内设置一栏时,除非明确指定,否则此栏缺省的字符集就是表默认的字符集;
总结:如果什么地方都不修改,那么所有的数据库的所有表的所有栏的都用 latin1 存储,不过我们如果安装 MySQL,一般都会选择多语言支持,也就是说,安装程序会自动在配置文件中把 default_character_set 设置为 UTF-8,这保证了缺省情况下,所有的数据库的所有表的所有栏的都用 UTF-8 存储。
二、查看默认字符集
查看系统的字符集和校对的设定可以通过下面的两条命令:
1. mysql> SHOW VARIABLES LIKE 'character%';
2. mysql> SHOW VARIABLES LIKE 'collation_%';
三、修改默认字符集
(1) 最简单的修改方法,就是修改mysql的my
相关文档:
最近装了几次linux,学了很多,把过程写下来了,希望给看的人帮助,也多给些建议。
一、选择最小化安装(什么也不选,但是还是选了vim)
二、使用光盘作为源安装(详情参见/etc/yum.repos.d/CentOS-Media.repo)所用套件(使用yum的强大功能)
####并不是简单的用yum命令,需要在yum后面加一些东西,/etc/yum.repo ......
方法一:建一个拼音表 t_cosler ,存放每个字母开头的第一个汉字的编号和最后一个汉字的编号。
BatchFile code+------+--------+-------+
| f_PY | cBegin | cEnd |
+------+--------+-------+
| A | 45217 | 45252 |
| B | 45253 | 45760 |
.....
| Z | 54481 | 55289 |
+------+--------+-------+
......
问:如果忘记了MySQL的root密码应当如何取回?
答:解决方法如下:
法1:在my.cnf的[mysqld]字段加入:
skip-grant-tables
然后重启你的mysqld,这样久没有密码了.
然后进入mysql。
UPDATE mysql.user SET Password=PASSWORD
('password') WHERE User='root';
成功后
FLUSH PRIVILEGES;
最后去掉my.cnf中的s ......
新安装后的mysql数据库,其默认的最大连接数为100。
方法一:
在mysql安装路径下,找到my.ini或者my.cnf文件,打开它找到max_connections,设置成1000; 然后重启mysql服务。
方法二:
在mysql运行环境下,进入mysql命令下:
mysql> set global max_connections=1000;
然后关闭mysql重启它;
在./bin路径下,使用 # ......