【MySQL笔记】mysql来源安装/配置步骤和支持中国gbk/gb2312编码配置
不久的学习笔记。分享。我想有很大的帮助谁刚开始学习其他人的
备注:该票据于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
然后输入rootpassword就可以停掉mysqld进程,若强行kill -9杀进程可能会导致数据库损坏!
8) 将mysql运行路径增加PATH变量的搜索路径
至此,支持中文gbk和gb2312的mysql server安装完毕。可运行下面命令验证其支持的字符集:
shell> mysql -uroot
mysql> show character set;
备注1:新安装的mysql server。root默认password为空
备注2:若在第2步运行./configurer时通过--with-charset參数指定了gbk或gb2312,则show的输出应该能看到这些字符集,否则,就准备又一次安装一遍吧 -_-
2. 安装完毕并启动mysqld_safe后的訪问权限配置
1) 设定mysql server的rootpassword
rootpassword默觉得空(因此,执行mysql -uroot可直接登录。此外,登录后执行"select User, Host, Password from mysql.user"能够看到root的Password那个字段为空)。所以须要设定rootpassword,方法有几种:
a. 使用set password语句:
shell> mysql -u root
mysql> 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 root
mysql> update mysql.user set Password = PASSWORD('xxx') where User = 'root';
mysql> flush privileges; # 该语句会让mysql server又一次读取权限表
若root相应的Host字段有多个。则推荐使用这样的方法指定rootpassword,由于它明显更简洁。
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")间无空格。可省去输入password的交互过程
mysql> create user work;
mysql> grant select on db1.test_table to 'user'@'localhost' identified by 'xxx';
上述grant语句运行效果:从localhost登录的user必须用xxxpassword才干登录成功。且仅仅能訪问数据库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:有时对远程登录用户授权时会发现,即使运行了上述命令,用户依旧无法远程登录。
这样的情况通常是因为该username首先命中了权限表的某条不支持远程登录的记录(如不同意来自某个IP地址的用户登录)。排查问题时,可运行select User, Host, Password from mysql.user where User =
'user'以查看user用户眼下拥有的权限,定位其是否具有从随意机器登录的权限或是否某个记录明白指定了user用户不能从某台特定的机器登录。
注意2:有时完毕远程用户登录设置后会发现,远程登录正常,而本地通过-h localhost 或 -h 127.0.0.1登录时却无法成功,这通常是因为同意本机匿名用户无password登录造成的(mysql server默认同意匿名登录)。仅仅需删除匿名用户的登录权限就可以。
【參考资料】 p=1084">mysql: unknown variable 'character-set-server=utf8'解决方法
1. mysql reference manual
2.
========================= EOF ==========================
版权声明:本文博客原创文章,博客,未经同意,不得转载。
【MySQL笔记】mysql来源安装/配置步骤和支持中国gbk/gb2312编码配置的更多相关文章
- Mysql 5.7 Linux安装详细步骤
版权声明:本文为博主原创文章,未经博主允许不得转载. 1.下载安装包 http://dev.mysql.com/downloads/mysql/#downloads 推荐下载通用安装方法的TAR包(h ...
- MySql笔记一:安装MySql
MySql第一次安装之后,一定会报错,我遇到了十几种不同的错误,搜来搜去也没有搜出个结果.于是我重新卸载了MySql,卸载干净之后,下载MSI格式的MySql安装包,安装完之后,还是报错,如下图... ...
- 涂抹mysql笔记-mysql性能调优和诊断
<>关键性指标1.IOPS(Input/Output operations Per Second)每秒处理的I/O请求次数:需要说明的一点,通常提到磁盘读写能力,比如形容它每秒读300M写 ...
- 涂抹mysql笔记-mysql复制特性
<>mysql复制特性:既可以实现整个服务(all databases)级别的复制,也可以只复制某个数据库或某个数据库中的某个指定的表对象.即可以实现A复制到B(主从单向复制),B再复制到 ...
- 涂抹mysql笔记-mysql管理工具
五花八门的mysql管理工具<>mysql提供的命令行工具 mysql_install_db:mysql建库工具,在源码安装mysql环节我们使用过. mysql_safe:mysql启动 ...
- 涂抹mysql笔记-mysql数据库文件结构
<>初始化选项文件:默认位置:windows平台 windir\my.ini windir可通过echo $WINDIR$查看 系统盘的根目录即:c:\my.ini installdir\ ...
- 【MySQL笔记】MySql5安装图解教程
MySql5.6Window超详细安装教程 2015-06-23 0个评论 来源:林炳文Evankaka的专栏 收藏 我要投稿 一.安装包准备 1.下载MySql5.6 ht ...
- 涂抹mysql笔记-mysql字符集
字符集:查看mysql数据库当前都支持哪些字符集:system@(none)>show character set;+----------+--------------------------- ...
- Solr配置步骤
1. 配置步骤说明 (1)配置Solr服务器. (2)配置SolrHome.(Solr服务的主目录,磁盘) (3)在Solr服务器中加载SolrHome. (4)java程序访问Solr服务器,实现全 ...
随机推荐
- codeforces293E (树上点分治+树状数组)
和poj1747相比起来,只不过是限制条件多了一维. 而多了这一维,所以需要用树状数组来维护,从而快速得到答案. 因为没注意传进树状数组函数的参数可能是<=0的,导致超时了好久. #pragma ...
- 全面认识Eclipse中JVM内存设置(转)
这里向大家描述一下Eclipse中如何进行JVM内存设置,JVM主要管理两种类型的内存:堆和非堆.简单来说堆就是Java代码可及的内存,是留给开发人员使用的:非堆就是JVM留给自己用的,所以方法区.J ...
- SQL Server :理解GAM和SGAM页
原文:SQL Server :理解GAM和SGAM页 我们知道SQL Server在8K 的页里存储数据.分区就是物理上连续的8个页.当我们创建一个数据库,数据文件会被逻辑分为页和区,当用户对象创建时 ...
- UVa 11463 - Commandos
主题:有一个敢死队,要销毁的建筑群,他们从一个特定建筑物离开,最后到一组特定的建筑物的. 现在,各个建筑物之间进行连接的路由,班车需要在建筑物1时间单位,我问的第一次集合. 分析:图论,最短路径.直接 ...
- 前台技术--通过javaScript提交表单
window.location=pp+"?username="+getCookie("username")+"&userid="+g ...
- JSF教程(9)——生命周期之Process Validations Phase
在这个过程其中JSF的实现者使用processValidators方法处理全部在tree中的组件中注冊的验证器.验证的过程就是通过每一个组件已有的规则对其已经保存的值进行校验,同一时候也对输入的值进行 ...
- 80x86汇编小站站长简单介绍-2014年08月23日
[序言] 旧版的"80x86汇编小站站长简单介绍"已经过时了, 因此于2013年10月01日花费1个小时又一次更新和排版一次. [人生格言] 1] 一生都用头脑而不是情绪解决这个 ...
- 局部敏感哈希(Locality-Sensitive Hashing, LSH)方法介绍
局部敏感哈希(Locality-Sensitive Hashing, LSH)方法介绍 本文主要介绍一种用于海量高维数据的近似近期邻高速查找技术--局部敏感哈希(Locality-Sensitive ...
- css--左右visibility建立 “collapse”值问题
1.您可能已使用visibility一千次,最常用的是visible和hidden.它用来显示或隐藏元素. 有第三很少已使用的值它是collapse,在表格的行,列中使用有差异外,他和hidden的作 ...
- Maven使用-创建一个Web项目
准备工作: 1,eclipse安装maven插件,本地下载maven工具 2,eclipse配置maven 创建项目步骤: 1,eclipse-创建项目-Maven Project 2,下一步, 3, ...