按以下完装可以解决 MYSQL 中文乱码问题 安装字体为GBK编码
我在linux 9 和linux as 3,linux as 4 下成功安装多次。
#groupadd mysql
#useradd -g mysql mysql
#tar -zxvf mysql-5.0.27.tar.gz
#cd mysql-5.0.27
#./configure -prefix=/opt/mysql -with-charset=gbk -with-extra-charsets=all
#make
#make install
#cp support-files/my-medium.cnf /etc/my.cnf或者cp /opt/mysql/share/mysql/my-medium.cnf /etc/my.cnf
#./scripts/mysql_install_db --user=mysql //初试化表并且规定用mysql用户来访问。初始化表以后就开始给mysql和root用户设定访问权限
设置用户权限
#chown -R root .
#chown -R mysql var
#chown -R mysql var/.
#chgrp -R mysql .
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
# chmod 700 /etc/init.d/mysqld
# chkconfig --add mysqld
# chkconfig --level 345 mysqld on
# service mysqld start
# netstat -atln 查看mysql端口3306是否打开,如果打开说明安装成功
更改root用户密码
#./bin/mysqladmin -u root password 'new passwd'
use 库名; 切换库名
create table 表名 (字段设定列表); 创建表
create database 库名; 创建数据库
#grant select,insert,update,delete,index,alter,create,drop,grant,references,reload,shutdown,process,file,reload,shutdown,precess on *.* to user_1@"%" Identified by '123';
#grant select,insert,update,delete,index,alter,create,drop on 库名.表名 to user_1@"%" Identified by "123";
我在linux 9 和linux as 3,linux as 4 下成功安装多次。
#groupadd mysql
#useradd -g mysql mysql
#tar -zxvf mysql-5.0.27.tar.gz
#cd mysql-5.0.27
#./configure -prefix=/opt/mysql -with-charset=gbk -with-extra-charsets=all
#make
#make install
#cp support-files/my-medium.cnf /etc/my.cnf或者cp /opt/mysql/share/mysql/my-medium.cnf /etc/my.cnf
#./scripts/mysql_install_db --user=mysql //初试化表并且规定用mysql用户来访问。初始化表以后就开始给mysql和root用户设定访问权限
设置用户权限
#chown -R root .
#chown -R mysql var
#chown -R mysql var/.
#chgrp -R mysql .
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
# chmod 700 /etc/init.d/mysqld
# chkconfig --add mysqld
# chkconfig --level 345 mysqld on
# service mysqld start
# netstat -atln 查看mysql端口3306是否打开,如果打开说明安装成功
更改root用户密码
#./bin/mysqladmin -u root password 'new passwd'
use 库名; 切换库名
create table 表名 (字段设定列表); 创建表
create database 库名; 创建数据库
#grant select,insert,update,delete,index,alter,create,drop,grant,references,reload,shutdown,process,file,reload,shutdown,precess on *.* to user_1@"%" Identified by '123';
#grant select,insert,update,delete,index,alter,create,drop on 库名.表名 to user_1@"%" Identified by "123";
启动mysql,登陆mysql以后,通过如下命令显示当前mysql所用编码。
>show variables like 'character%'; #执行编码显示
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
在mysql中的my.cnf中修改如下设置:
找到客户端配置[client] 在下面添加
default-character-set=utf8 默认字符集为utf8
在找到[mysqld] 添加
default-character-set=utf8 默认字符集为utf8
旧数据升级办法
以原来的字符集为latin1为例,升级成为utf8的字符集,
编码转换步骤:
1、导出旧数据:
mysqldump -uroot -p --default-character-set=latin1 --set-charset=utf8 --skip-opt 数据库>old.sql
2、转换sql编码:
iconv -t utf-8 -f gb2312 -c old.sql > new.sql
在这里,假定原来的数据默认是gb2312编码。
3、导入新数据库:
mysql -uroot -p --default-character-set=gbk -f 新数据库<new.sql
附:
查看mysql支持的编码:
SHOW VARIABLES LIKE 'character_set_%';
SHOW VARIABLES LIKE 'collation_%';
查看文件编码命令:
file 文件名
>show variables like 'character%'; #执行编码显示
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
在mysql中的my.cnf中修改如下设置:
找到客户端配置[client] 在下面添加
default-character-set=utf8 默认字符集为utf8
在找到[mysqld] 添加
default-character-set=utf8 默认字符集为utf8
旧数据升级办法
以原来的字符集为latin1为例,升级成为utf8的字符集,
编码转换步骤:
1、导出旧数据:
mysqldump -uroot -p --default-character-set=latin1 --set-charset=utf8 --skip-opt 数据库>old.sql
2、转换sql编码:
iconv -t utf-8 -f gb2312 -c old.sql > new.sql
在这里,假定原来的数据默认是gb2312编码。
3、导入新数据库:
mysql -uroot -p --default-character-set=gbk -f 新数据库<new.sql
附:
查看mysql支持的编码:
SHOW VARIABLES LIKE 'character_set_%';
SHOW VARIABLES LIKE 'collation_%';
查看文件编码命令:
file 文件名
/etc/init.d/mysql start (stop) 为启动和停止服务器
/etc/mysql/ 主要配置文件所在位置 my.cnf
/var/lib/mysql/ 放置的是数据库表文件夹,这里的mysql相当于windows下mysql的date文件夹
启动mysql后,以root登录mysql
isher@isher-ubuntu:~$ mysql -u root
>show variables like 'character%'; #执行编码显示
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
在某些时候,我们续要修改mysql默认数据库的编码,以保证某些迁移的程序可以正常显示,编辑my.cnf文件进行编码修改,windows可以直接用Mysql Server Instance Config Wizard 进行设置
在linux下修改3个my.cnf的1个/etc/mysql/my.cnf文件
找到客户端配置[client] 在下面添加
default-character-set=utf8 默认字符集为utf8
在找到[mysqld] 添加
default-character-set=utf8 默认字符集为utf8
init_connect='SET NAMES utf8' (设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行)
修改好后,重新启动mysql 即可,查询一下show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
此方法用于标准mysql版本同样有效,对于/etc/my.cnf文件,需要从mysql/support-files的文件夹cp my-large.cnf一份到/etc/my.cnf
一般安装系统默认是INNODB
default-storage-engine=INNODB
你可以使用很多方法指定一个要使用的存储引擎。最简单的方法是,如果你喜欢一种能满足你的大多数数据库需求的存储引擎,你可以在MySQL设置文件中设置一个默认的引擎类型(使用storage_engine 选项)或者在启动数据库服务器时在命令行后面加上--default-storage-engine或--default-table-type选项 。
更灵活的方式是在随MySQL服务器发布同时提供的MySQL客户端时指定使用的存储引擎。最直接的方式是在创建表时指定存储引擎的类型,向下面这样:
CREATE TABLE mytable (id int, title char(20)) ENGINE = INNODB
/etc/mysql/ 主要配置文件所在位置 my.cnf
/var/lib/mysql/ 放置的是数据库表文件夹,这里的mysql相当于windows下mysql的date文件夹
启动mysql后,以root登录mysql
isher@isher-ubuntu:~$ mysql -u root
>show variables like 'character%'; #执行编码显示
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
在某些时候,我们续要修改mysql默认数据库的编码,以保证某些迁移的程序可以正常显示,编辑my.cnf文件进行编码修改,windows可以直接用Mysql Server Instance Config Wizard 进行设置
在linux下修改3个my.cnf的1个/etc/mysql/my.cnf文件
找到客户端配置[client] 在下面添加
default-character-set=utf8 默认字符集为utf8
在找到[mysqld] 添加
default-character-set=utf8 默认字符集为utf8
init_connect='SET NAMES utf8' (设定连接mysql数据库时使用utf8编码,以让mysql数据库为utf8运行)
修改好后,重新启动mysql 即可,查询一下show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
此方法用于标准mysql版本同样有效,对于/etc/my.cnf文件,需要从mysql/support-files的文件夹cp my-large.cnf一份到/etc/my.cnf
一般安装系统默认是INNODB
default-storage-engine=INNODB
你可以使用很多方法指定一个要使用的存储引擎。最简单的方法是,如果你喜欢一种能满足你的大多数数据库需求的存储引擎,你可以在MySQL设置文件中设置一个默认的引擎类型(使用storage_engine 选项)或者在启动数据库服务器时在命令行后面加上--default-storage-engine或--default-table-type选项 。
更灵活的方式是在随MySQL服务器发布同时提供的MySQL客户端时指定使用的存储引擎。最直接的方式是在创建表时指定存储引擎的类型,向下面这样:
CREATE TABLE mytable (id int, title char(20)) ENGINE = INNODB