0

0

【MySQL笔记】mysql源码安装/配置步骤及支持中文gbk/gb2312编码_MySQL

php中文网

php中文网

发布时间:2016-06-01 13:14:18

|

1270人浏览过

|

来源于php中文网

原创

好久之前的学习笔记,分享出来,希望能帮助到更多初学者

备注:本笔记以mysql-5.1.73版本为例进行说明

1. mysql源码编译/安装步骤

1) 官网下载mysql源码并解压
2) cd至源码目录,执行

./configure--prefix=/home/slvher/tools/mysql-5.1.73 --with-charset=gbk --with-charset=gb2312 --with-extra-charsets=all --with-plugins=max-no-ndb
      备注:

       --prefix指定安装目录,需根据实际情况修改
       --with-charset指定默认支持的字符集,可指定多个(若需要数据库支持简体中文,请务必指定gbk和gb2312,至少要指定1个
       --with-plugins指定安装innodb引擎(从mysql5.1版本开始需要手动指定,之前则是默认安装的)
3) 查看Makefile文件,确认几个基本配置无误后,执行

shell> make shell> make install

       备注1若install失败是由第2步执行./configure时参数指定错误所致,则需重新执行./configure且务必执行make clean后,再重新make && make install。若不先make clean直接make,则源码目录下上次编译完的部分文件不会重新编译,而这些上次编译的文件使用的还是上次的错误配置参数!
        备注2:安装完成后,cd至mysql安装目录(通过--prefix指定的路径或默认的系统路径),可以看到bin/include/lib之类的文件夹,这表明二进制文件安装成功
4) 从源码目录的support-files文件夹拷贝my-medium.cnf(共有small/medium/large三个level,根据机器配置选择合适的)配置至~/.my.cnf文件,并配置相关参数。mysql server启动时会读取该文件的配置,关于mysql对my.cnf文件的搜索路径,可以查看官方的mysql-refman文档。
        备注:my.cnf配置不当可能会引起mysql报错,例如"mysql: unknown variable 'character-set-server=utf8'",该问题解决方法参见这里
5) 在mysql安装目录先后执行如下命令以便安装权限表及默认数据库

./bin/mysql_install_db --basedir=/home/slvher/tools/mysql-5.1.73 --datadir=/home/slvher/tools/mysql-5.1.73/db-data ./bin/mysql_install_db --user=slvher

6) 在mysql安装目录执行如下命令启动mysqld: 

./bin/mysqld_safe &

7) 执行ps -x查看mysqld是否启动成功,其中d表示守护模式。因此,正常的关闭mysqlserver的方法应该是下面的命令:

./bin/mysqladmin shutdown -uroot -p

       然后输入root密码即可停掉mysqld进程,若强行kill -9杀进程可能会导致数据库损坏!
8) 将mysql执行路径加入PATH变量的搜索路径
       
至此,支持中文gbk和gb2312的mysql server安装完成。可执行以下命令验证其支持的字符集:

shell> mysql -uroot mysql> show character set;

     备注1:新安装的mysql server,root默认密码为空
     备注2:若在第2步执行./configurer时通过--with-charset参数指定了gbk或gb2312,则show的输出应该能看到这些字符集,否则,就准备重新安装一遍吧 -_-

2. 安装完成并启动mysqld_safe后的访问权限配置

1) 设定mysql server的root密码
        root密码默认为空(因此,运行mysql -uroot可直接登录;此外,登录后运行"select User, Host, Password from mysql.user"可以看到root的Password那个字段为空),所以需要设定root密码,方法有几种:
        a. 使用set password语句:

绘蛙AI商品图
绘蛙AI商品图

电商场景的AI创作平台,无需高薪聘请商拍和文案团队,使用绘蛙即可低成本、批量创作优质的商拍图、种草文案

下载
shell> mysql -u rootmysql> set password for 'root'@'localhost' = PASSWORD('xxx');# 其中xxx为新密码mysql> set password for 'root'@'host_name' = PASSWORD('xxx');# 其中host_name为机器名mysql> set password for 'root'@'127.0.0.1' = PASSWORD('xxx');

         b. 使用update语句:

shell> mysql -u rootmysql> update mysql.user set Password = PASSWORD('xxx') where User = 'root';mysql> flush privileges;# 该语句会让mysql server重新读取权限表

         若root对应的Host字段有多个,则推荐使用这种方法指定root密码,因为它明显更简洁。
         c. 使用mysqladmin工具:

shell> mysqladmin -u root password "xxx" shell> mysqladmin -u root -h host_name passord "xxx"

         这种方法无法设定形如'root'@'127.0.0.1'的root新密码,故个人觉得用处不大。
         注意:新安装的mysql server默认允许本机匿名用户登录,若不需要,最好删除匿名用户。

2) 添加新用户并授权
        由于root权限过大,有必要为mysql添加normal user并设定其权限,可通过以下步骤实现(假设已登录了mysql server所在机器):

shell> mysql -u root -pxxx# 注意-p与password(假设为"xxx")间无空格,可省去输入密码的交互过程mysql> create user work;mysql> grant select on db1.test_table to 'user'@'localhost' identified by 'xxx';

        上述grant语句执行效果:从localhost登录的user必须用xxx密码才能登录成功,且只能访问数据库db1的test_table表。
        若要为从localhost登录的user授权对所有库所有表的全部操作权限,则可执行如下命令:

mysql> grant all privileges on *.* to 'user'@'localhost' identified by 'xxx';

        若为远程登录的用户授权(对db1.test_table的select/insert权限),则需执行下面的命令:

mysql> grant select, insert on db1.test_table to 'user'@'%' identified by 'xxx';

        上述语句中的'%'表示任意主机,因此可以覆盖远程登录的情况。
        注意1:有时对远程登录用户授权时会发现,即使执行了上述命令,用户依然无法远程登录。这种情况一般是由于该用户名首先命中了权限表的某条不支持远程登录的记录(如不允许来自某个IP地址的用户登录)。排查问题时,可执行select User, Host, Password from mysql.user where User = 'user'以查看user用户目前拥有的权限,定位其是否具有从任意机器登录的权限或是否某个记录明确指定了user用户不能从某台特定的机器登录。
        注意2:有时完成远程用户登录设置后会发现,远程登录正常,而本地通过-h localhost 或 -h 127.0.0.1登录时却无法成功,这一般是由于允许本机匿名用户无密码登录造成的(mysql server默认允许匿名登录),只需删除匿名用户的登录权限即可。

【参考资料】
1.mysql reference manual 
2. mysql: unknown variable 'character-set-server=utf8'解决方法

========================= EOF ==========================

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

616

2026.02.13

微博网页版主页入口与登录指南_官方网页端快速访问方法
微博网页版主页入口与登录指南_官方网页端快速访问方法

本专题系统整理微博网页版官方入口及网页端登录方式,涵盖首页直达地址、账号登录流程与常见访问问题说明,帮助用户快速找到微博官网主页,实现便捷、安全的网页端登录与内容浏览体验。

194

2026.02.13

Flutter跨平台开发与状态管理实战
Flutter跨平台开发与状态管理实战

本专题围绕Flutter框架展开,系统讲解跨平台UI构建原理与状态管理方案。内容涵盖Widget生命周期、路由管理、Provider与Bloc状态管理模式、网络请求封装及性能优化技巧。通过实战项目演示,帮助开发者构建流畅、可维护的跨平台移动应用。

91

2026.02.13

TypeScript工程化开发与Vite构建优化实践
TypeScript工程化开发与Vite构建优化实践

本专题面向前端开发者,深入讲解 TypeScript 类型系统与大型项目结构设计方法,并结合 Vite 构建工具优化前端工程化流程。内容包括模块化设计、类型声明管理、代码分割、热更新原理以及构建性能调优。通过完整项目示例,帮助开发者提升代码可维护性与开发效率。

20

2026.02.13

Redis高可用架构与分布式缓存实战
Redis高可用架构与分布式缓存实战

本专题围绕 Redis 在高并发系统中的应用展开,系统讲解主从复制、哨兵机制、Cluster 集群模式及数据分片原理。内容涵盖缓存穿透与雪崩解决方案、分布式锁实现、热点数据优化及持久化策略。通过真实业务场景演示,帮助开发者构建高可用、可扩展的分布式缓存系统。

54

2026.02.13

c语言 数据类型
c语言 数据类型

本专题整合了c语言数据类型相关内容,阅读专题下面的文章了解更多详细内容。

29

2026.02.12

雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法
雨课堂网页版登录入口与使用指南_官方在线教学平台访问方法

本专题系统整理雨课堂网页版官方入口及在线登录方式,涵盖账号登录流程、官方直连入口及平台访问方法说明,帮助师生用户快速进入雨课堂在线教学平台,实现便捷、高效的课程学习与教学管理体验。

15

2026.02.12

豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法
豆包AI网页版入口与智能创作指南_官方在线写作与图片生成使用方法

本专题汇总豆包AI官方网页版入口及在线使用方式,涵盖智能写作工具、图片生成体验入口和官网登录方法,帮助用户快速直达豆包AI平台,高效完成文本创作与AI生图任务,实现便捷智能创作体验。

598

2026.02.12

PostgreSQL性能优化与索引调优实战
PostgreSQL性能优化与索引调优实战

本专题面向后端开发与数据库工程师,深入讲解 PostgreSQL 查询优化原理与索引机制。内容包括执行计划分析、常见索引类型对比、慢查询优化策略、事务隔离级别以及高并发场景下的性能调优技巧。通过实战案例解析,帮助开发者提升数据库响应速度与系统稳定性。

56

2026.02.12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
SciPy 教程
SciPy 教程

共10课时 | 1.6万人学习

麻省理工大佬Python课程
麻省理工大佬Python课程

共34课时 | 5.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号