如果你在你的my.cnf文件中增加了 default-character-set = gbk 但是当你无法启动mysql,错误日志里面报告类似于这样的: 060625 01:37:00 mysqld started

^G/usr/local/mysql/libexec/mysqld: File ‘/usr/local/mysql/share/mysql/charsets/gb2312.conf’ not found (Errcode: 2)

^G/usr/local/mysql/libexec/mysqld: Character set ‘gb2312′ is not a compiled character set and is not specified in the ‘/usr/local/mysql/share/mysql/charsets/Index’ file

060625 01:37:00 mysqld ended 错误的时候,

目前我的解决方法是重新编译mysql,在编译的参数中加入–with-extra-charsets=gbk,gb2312 便可解决此问题。

解决方法参考: MYSQL完全安装使用指南

下面付上原文

[quote]

mysql安装笔记

cloud/2003.10.10

mail:flashc@21cn.com

欢迎转载,转载请保留上述信息,谢谢

学习了很长时间的linux,有必要做一下整理笔记了,以下是mysql的安装笔记,和常见的一些使用方法。

因我喜欢调试优化系统,所以在编译安装时使用了一些选项增加编程后程序的执行效率,有些可能我理解有错,希望大家指出.

●安装mysql

tar zxvf mysql-4.0.14.tar.gz -C /setup

cd /setup/mysql-4.0.14

groupadd mysql

useradd mysql -g mysql -M -s /bin/false

./configure –prefix=/web/mysql 指定安装目录

  --without-debug 去除debug模式  

  --with-extra-charsets=gb2312 添加gb2312中文字符支持  

  --enable-assembler 使用一些字符函数的汇编版本  

  --without-isam 去掉isam表类型支持 现在很少用了 isam表是一种依赖平台的表  

  --without-innodb 去掉innodb表支持 innodb是一种支持事务处理的表,适合企业级应用  

  --with-pthread 强制使用pthread库(posix线程库)  

  --enable-thread-safe-client 以线程方式编译客户端  

  --with-client-ldflags=-all-static   

  --with-mysqld-ldflags=-all-static 以纯静态方式编译服务端和客户端       --with-raid 激活raid支持 

make

make install

scripts/mysql_install_db 生成mysql用户数据库和表文件

cp support-files/my-medium.cnf /etc/my.cnf copy配置文件,有large,medium,small三个环境下的,根据机器性能选择,如果负荷比较大,可修改里面的一些变量的内存使用值

cp support-files/mysql.server /etc/init.d/mysqld copy启动的mysqld文件

chmod 700 /etc/init.d/mysqld

cd /web

chmod 750 mysql -R

chgrp mysql mysql -R

chown mysql mysql/var -R

cd /web/mysql/libexec

cp mysqld mysqld.old

strip mysqld

chkconfig –add mysqld

chkconfig –level 345 mysqld on

service mysqld start

netstat -atln

看看有没有3306的端口打开,如果mysqld不能启动,看看/web/mysql/var下的出错日志,一般都是目录权限没有设置好的问题

ln -s /web/mysql/bin/mysql /sbin/mysql

ln -s /web/mysql/bin/mysqladmin /sbin/mysqladmin

mysqladmin -uroot password “youpassword” #设置root帐户的密码

mysql -uroot -p

输入你设置的密码

mysql>;use mysql;

mysql>;delete from user where password=""; #删除用于本机匿名连接的空密码帐号

mysql>;flush privileges;

mysql>;quit

●安装DBI和DBD for mysql 用于提供perl访问mysql数据库的接口规范,请确认你已经安装了perl,一般默认系统都装上了

cd /setup

tar zxvf DBD-mysql-2.9002.tar.gz -C /setup

tar zxvf DBI-1.38.tar.gz -C /setup

cd DBI-1.38

perl Makefile.PL

make

make test

make install

因为有的perl程序中perl的路径是/usr/local/bin/perl,而红帽系统默认是/usr/bin/perl,所以最好做一个连接,保证兼容性

ln -s /usr/bin/perl /usr/local/bin/perl

cd ../DBD-mysql-2.9002

生成安装配置文件需要在perl Makefile.PL后添加一些参数,比较麻烦,我们可以通过添加一个到/web/mysql/bin/mysql_config这个程序的连接解决问题

系统会自动寻找这个命令生成安装所需要的数据库参数

ln -s /web/mysql/bin/mysql_config /sbin/mysql_config

perl Makefile.PL

make

make instll (这里make test我总是运行一半就出错,但是安装后是可以运行mysql目录下的测试脚本,不知道3.x的mysql如何)

现在你可以运行测试脚本了,不过速度很慢,挂在后台好了

perl /web/mysql/sql-bench/run-all-tests –user=root –password=“youpassword”

附:

●mysql常见的一些有用的选项和命令

mysqld —–开启日志支持

–log

–log-update

–log-long-formart

●mysql

grant all on database.* to user identified by “password” 新建一user用户,赋予其database数据库的所有权限

revoke all on database from user 移除user用户在database数据库上的所有权限

mysql -uroot -p –one-database databasename ●mysqladmin

mysqladmin flush-logs 命令mysqld重新打开一个新的日志文件,就是清空老日志文件,相当于轮回了

●mysqldump

–add-drop-table 导出sql语句时添加droptable if exists语句

–quick 快速导出

–opt 优化选项(推荐)

●myisamchk

检查表选项

–extend-check 扩展检查

–medium-check 速度比较折中的一个检查选项

修复表选项

–recover 修复表文件

–safe-recover 安全修复表文件,比–recover要慢

修饰修复表项

–force 强制清除上次的临时文件

–quick 只根据素引文件的内容进行修复

●mysql的管理

可以使用phpmyadmin(需要php的环境支持)和mysqlcc(linux图形界面支持,WINDOWS系统支持)

[/quote]