不久的学习笔记。分享。我想有很大的帮助谁刚开始学习其他人的

备注:该票据于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默认同意匿名登录)。仅仅需删除匿名用户的登录权限就可以。

【參考资料】

1. mysql reference manual

2. 

p=1084">mysql: unknown variable 'character-set-server=utf8'解决方法

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

版权声明:本文博客原创文章,博客,未经同意,不得转载。

【MySQL笔记】mysql来源安装/配置步骤和支持中国gbk/gb2312编码配置的更多相关文章

  1. Mysql 5.7 Linux安装详细步骤

    版权声明:本文为博主原创文章,未经博主允许不得转载. 1.下载安装包 http://dev.mysql.com/downloads/mysql/#downloads 推荐下载通用安装方法的TAR包(h ...

  2. MySql笔记一:安装MySql

    MySql第一次安装之后,一定会报错,我遇到了十几种不同的错误,搜来搜去也没有搜出个结果.于是我重新卸载了MySql,卸载干净之后,下载MSI格式的MySql安装包,安装完之后,还是报错,如下图... ...

  3. 涂抹mysql笔记-mysql性能调优和诊断

    <>关键性指标1.IOPS(Input/Output operations Per Second)每秒处理的I/O请求次数:需要说明的一点,通常提到磁盘读写能力,比如形容它每秒读300M写 ...

  4. 涂抹mysql笔记-mysql复制特性

    <>mysql复制特性:既可以实现整个服务(all databases)级别的复制,也可以只复制某个数据库或某个数据库中的某个指定的表对象.即可以实现A复制到B(主从单向复制),B再复制到 ...

  5. 涂抹mysql笔记-mysql管理工具

    五花八门的mysql管理工具<>mysql提供的命令行工具 mysql_install_db:mysql建库工具,在源码安装mysql环节我们使用过. mysql_safe:mysql启动 ...

  6. 涂抹mysql笔记-mysql数据库文件结构

    <>初始化选项文件:默认位置:windows平台 windir\my.ini windir可通过echo $WINDIR$查看 系统盘的根目录即:c:\my.ini installdir\ ...

  7. 【MySQL笔记】MySql5安装图解教程

    MySql5.6Window超详细安装教程 2015-06-23      0个评论    来源:林炳文Evankaka的专栏   收藏    我要投稿 一.安装包准备 1.下载MySql5.6 ht ...

  8. 涂抹mysql笔记-mysql字符集

    字符集:查看mysql数据库当前都支持哪些字符集:system@(none)>show character set;+----------+--------------------------- ...

  9. Solr配置步骤

    1. 配置步骤说明 (1)配置Solr服务器. (2)配置SolrHome.(Solr服务的主目录,磁盘) (3)在Solr服务器中加载SolrHome. (4)java程序访问Solr服务器,实现全 ...

随机推荐

  1. Percona Data Recovery Tool for InnoDB工具恢复单表的案例

    今天上班有个朋友询问我,相关Percona Data Recovery Tool for InnoDB恢复数据中的一些问题,比如说delete,没法恢复数据,原先做过类似的异常处理就,再次模拟了下相关 ...

  2. Intent有可能的使用(两)

    Intent作为联系各Activity之间的纽带,其作用并不只只限于简单的数据传递. 通过其自带的属性.事实上能够方便的完毕非常多较为复杂的操作. 比如直接调用拨号功能.直接自己主动调用合适的程序打开 ...

  3. live555 for Android

    因为Live555 包中未提供Android 的config 所以编译器来比較麻烦,须要自己编写Android.mk ,下面是我通过 改动 现有的config文件,在cygwin实现 编译的过程,co ...

  4. paip.关于动画效果的原则 html js 框架总结

    paip.关于动画效果的原则 html js 框架总结 1. 动画框架的来源:flex,jqueryui 3 2. 特效的分类 3 2.1. Property effects 动态改变一个或多个目标对 ...

  5. Python3.4 邮件(包含附件与中国)

    import smtplib import os from email.mime.text import MIMEText from email.mime.multipart import MIMEM ...

  6. Android自己定义组件系列【9】——Canvas绘制折线图

    有时候我们在项目中会遇到使用折线图等图形,Android的开源项目中为我们提供了非常多插件,可是非常多时候我们须要依据详细项目自己定义这些图表,这一篇文章我们一起来看看怎样在Android中使用Can ...

  7. 创Wcf案例数据服务

    首先,创建实体类: using System; using System.Linq; using System.Collections.Generic; using System.Data.Servi ...

  8. Enum变量值的Discretion

    有些时候,某个方法的返回值是个枚举类型,比如描述登录结果: public enum LoginResult { Success, WrongPassword, } 当前段UI获取到登陆方法的返回结果时 ...

  9. quick 2.23 它们的定义c++代码lua与总结的一些细节

    它们的定义c++代码lua与总结的一些细节 参考:点击打开链接 1.自己定义 XXX.cpp .XXX.h 2.D:\quick\quick-cocos2d-x-2.2.3-rc\lib\cocos2 ...

  10. filestream.read(buffer,offset,count)的正确解释

    filestream.read(buffer,offset,count) offset是buffer的偏移量 所以,filestream.read(buffer,1,count)会报下面的错 Syst ...