首页 > 数据库技术 > 详细

mysql编译安装

时间:2016-03-08 21:41:14      阅读:249      评论:0      收藏:0      [点我收藏+]

编译安装MySQL-5.5


cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译。


编译安装MySQL-5.5



一、安装cmake    (也可以yum安装cmake,不过在此之前要yum list all | grep cmake安装最新的)也可以使用编译安装

一般情况下,cmake无需自己编译的,因为epel各源中都是有的,是不许要在安装的,直接yum即可


跨平台编译器


# tar xf cmake-2.8.8.tar.gz

# cd cmake-2.8.8

# ./bootstrap

# make 

# make install




二、编译安装mysql-5.5.33


1、使用cmake编译mysql-5.5

cmake指定编译选项的方式不同于make,其实现方式对比如下:

./configure           cmake .

./configure --help    cmake . -LH or ccmake .




指定安装文件的安装路径时常用的选项:

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql    -D默认

-DMYSQL_DATADIR=/data/mysql   数据目录

-DSYSCONFDIR=/etc   配置文件路径,my.cnf位置



默认编译的存储引擎包括:csv、myisam、myisammrg和heap。若要安装其它存储引擎,可以使用类似如下编译选项:

-DWITH_INNOBASE_STORAGE_ENGINE=1    使用innoDB

-DWITH_ARCHIVE_STORAGE_ENGINE=1

-DWITH_BLACKHOLE_STORAGE_ENGINE=1    黑洞引擎

-DWITH_FEDERATED_STORAGE_ENGINE=1


若要明确指定不编译某存储引擎,可以使用类似如下的选项:

-DWITHOUT_<ENGINE>_STORAGE_ENGINE=1    这一个是格式样例

比如:

-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1

-DWITHOUT_FEDERATED_STORAGE_ENGINE=1

-DWITHOUT_PARTITION_STORAGE_ENGINE=1


如若要编译进其它功能,如SSL等,则可使用类似如下选项来实现编译时使用某库或不使用某库:

-DWITH_READLINE=1     客户单交互工具,可以使用命令历史等各级高级功能

-DWITH_SSL=system

-DWITH_ZLIB=system    压缩,节约带宽

-DWITH_LIBWRAP=0    


其它常用的选项:

-DMYSQL_TCP_PORT=3306     默认端口

-DMYSQL_UNIX_ADDR=/tmp/mysql.sock   sock位置

-DENABLED_LOCAL_INFILE=1

-DEXTRA_CHARSETS=all

-DDEFAULT_CHARSET=utf8

-DDEFAULT_COLLATION=utf8_general_ci   排序规则

-DWITH_DEBUG=0

-DENABLE_PROFILING=1      是否支持性能剖析




如果想清理此前的编译所生成的文件,则需要使用如下命令:

make clean

rm CMakeCache.txt



2、编译安装


# groupadd -r mysql      创建用户,mysql作为进程的主人

# useradd -g mysql -r -d /mydata/data mysql

# tar xf mysql-5.5.33.tar.gz   

# cd mysql-5.5.33

# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

          -DMYSQL_DATADIR=/mydata/data \

          -DSYSCONFDIR=/etc \

 -DWITH_INNOBASE_STORAGE_ENGINE=1 \

          -DWITH_ARCHIVE_STORAGE_ENGINE=1 \

          -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

 -DWITH_READLINE=1 \

 -DWITH_SSL=system \

 -DWITH_ZLIB=system \

 -DWITH_LIBWRAP=0 \

 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \

 -DDEFAULT_CHARSET=utf8 \

          -DDEFAULT_COLLATION=utf8_general_ci

# make 

# make install


3.初始化mysql

mkdir -pv /mydata/data

chown -R mysql.mysql /mysdata/data  数据存放目录都给mysql


安装目录属主不动,数组为mysql:  chown :mysql /usr/local/mysql/* -R


执行初始化:/usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/mydata/data/    之后就会在数据目录下/mydata/data下就会生成实例了,这样数据初始化结束


复制服务脚本:cp support-files/mysql.server /etc/rc.d/init.d/mysqld    用户使用mysql就可以进入数据库


chmod +x /etc/rc.d/init.d/mysqld

chkconfig --add mysqld

复制配置文件  cp /usr/local/mysql/support-files/my-large.cnf /etc/my.cnf    

vim /etc/my.cnf

  datadir = /mydata/data


service mysqld start  可以启动测试了  

ss -tnl  有3306即可


如果想要mysql客户端正常启动

vim /etc/profile.d/mysql.sh

export PATH=/usr/local/mysql/bin:$PATH

mysql 就能够登录客户端了





/usr/local/mysql/bin目录下的

mysqld

mysqld_safe 线程进程服务,平时默认启动这个

mysqld_multi 一个主机上启动多个进程,多实例进程

mysql 客户端工具

mysqladmin   

mysqldump   逻辑备份工具




my.cnf配置文件的访问顺序:/etc/my.cnf 

/etc/mysql/my.cnf  

$MYSQL_HOME/my.cnf  mysql的运行目录

如果定义了--default-extra-file=/path/to/file那还是会找这个路径下的文件的

~/.my.cnf   当前用户下的家目录下隐藏的配置文件

从上到下一次寻找,所有配置集合有效,所有文件都定义的值,以最后匹配的为准

################################################################################################


使用配置文件的方式

1.它依次查找多个需要查找的文件,结果是所有文件交集

2.如果某参数在多个文件中宏出现多次,后配置的最终生效


./mysqld --help --verbose  查看可以修改的文件,显示当前服务上mysql所支持的所有变量和配置

1.显示mysql的程序启动时可用的选项,通常都是长选项

2.显示mysqld配置文件中可用的服务变量

    mysql > show global variables

    mysql > show session variables



初始化:第二个操作

1、删除所有匿名用户

    mysql > drop user‘‘@‘localhost‘

    mysql > drop user‘‘@‘www.zou.com‘


     用户名账号由两部分组成:username@host

       host还可以使用通配符

         %:任意长度的任意字符

         _:匹配任意单个字符


 2.给所有的root用户设定密码

  第一种方式

     mysql > set password for username@host = password( ‘your_password‘)


  第二种方法   (比较妥当,安全)

     mysql > update user set password = password(‘your_password‘) where user = ‘root‘;

     mysql > flush peivileges


  第三种方式

     # mysqladmin -uUserName -hHost password ‘new_password‘ -p

     mysqladmin -uUserName -h Host -p flush-privileges


接入MySQL服务器

  mysql <-mysql protocol-> mysqld    使用mysql客户端基于某种协议连接mysqld

  

   mysql接受链接请求(有两种)

      本地通信:客户端与服务器端位于同一主机,而且还要基于127.0.0.1(localhost)地址或lo接口进行通信

        Linux OR Unix:Unix Sock,编译安装在/tmp/mysql.scok,如果是OS win ,位置在 /var/lib/mysql/mysql.sock

        Widows:memory pipe  共享内存,或者管道

      远程通信:客户端与服务器位于不同的主机,或在同一主机使用非回环地址通信

        TCP Socket


    客户端工具:mysql,mysqladmin,mysqldump,mysqlcheck

       [client]  对以上工具生效

       

       通信的选项:

         -u,--user=

         -h, --host=

         -p, --password=

         --protocol={tcp|socket|memory|pipe}

         --port=

         --socket=/tmp/mysql.sock

         

    mysql监听的端口:3306/tcp


    非客户端类的管理工具:myisamchk,myisampack


mysql:

    交互式模式

       mysql>

    脚本模式

       mysql < /path/to/mysql_scripy.sql


mysql交互式模式:

    客户端命令

        mysql> help

        mysql>\?

        \c:取消命令的执行

        \g

        \G

        \q

        \!

        \s

        \. /path/to/mysql_script.mysql 批处理zhixingmysql命令

        \# 命令补全

   

   服务器端命令:需要命令结束符,默认为分号(;)

    mysql> help 关键字

help create table 获取如何创建表

    help contents 获取整体列表

    mysql> help keyword 获取命令


mysql命令行选项

   --compress 压缩传输

   --default-character-set=字符集   mysql启动时(客户端)向服务器发送的字符集

   -V: 显示版本号   --version

   -v: 显示详细信息 --verbose

   --ssl-ca=ca证书文件  (绝对路径)

   --ssl-capath =ca证书的文件夹

   --ssl-cert =客户端证书

   --ssl-cipher =加密机制,方式

   --ssl-key =使用的私钥

   --ssl-verify-server-cert =验证服务器端证书


   --database= -D:指定要使用的数据库


   -H --html:输出结果为html格式的文档

   -X --xml:输出结果为xml格式的文档


   --safe-updates:发送命令时拒绝使用无where字句的update或delete命令

  

   mysql命令提示符

   mysql> 等待输入命令

   ‘> 前面提供的‘未提供结束’

   ”>  引用字符串

   `> 引用字符串

   -> 续航符

   /*> 注释信息   结束以*/


   mysql的命令行编辑快捷键

    ctrl+w:删除光标所在处之前的一个单词

    ctrl+u:删除光标之前至行首的所有内容

    ctrl+y:粘贴之前ctrl+w或ctrl+u删除的内容

    ctrl+a:移动光标至行首

    ctrl+e:移动光标至行尾


一旦使用家mysql,就会在当前用户家目录下生成一个.mysql_history 的文件



mysql的输出格式:

--html 或者 -H  就是输出时显示的是http格式的文档

eg: mysql -uroot -H -p   之后select * mysql.user;复制粘贴这些输出内容,到一个网页中,打开时就会发现,一个正常的输出格式的数据表格


-X   --xml 的选项输出格式为xml,就是表格模式



mysqladmin工具     不用进入mysql就可以执行相关操作

   mysqladmin [options] command [arg] [command[arg]] .....


  command

     create DB_Name 创建空数据库   mysqladmin -uroot -p create mydb

     -e:直接返回         mysqladmin -uroot -p -e ‘show databases;‘

     drop DB_Name 删除数据库

     debug 打开调试日志并记录到mysql中的error_log中   偶尔判断mysql错误时有用

     status:输出简要状态信息

        -sleep # 指定显示延迟     mysqladmin -uroot -p --sleep 1  每一秒钟显示一次状态信息

        -count # 指定批次,显示几次转态结果

     extended-status:输出mysq的各状态变量及数值,相当于执行“mysql> show global status”

     flush-hosts:清空主机相关的缓存:DNS解析缓存,此前因为连接错误次数过多而被拒绝访问mysqld的主机列表

     flush-logs:日志滚动,只能是二进制日志和中继日志

     refresh:相当于同时使用flush-logs和flush-hosts 


     flush-privileges:通知服务器重读授权表

     reload:重载授权表  相当于flush-privileges

     flush-status:重置状态变量的值

     flush-tables:关闭当前打开的表文件句柄

     flush-threads:清空线程缓存

     kill:杀死指定的线程,后面跟线程id ,可以一次杀死多个线程,以逗号分隔,但不能有多余空格

     password:修改指定用户的密码

     processlist: 显示mysql线程列表

     shutdown:关闭mysqld进程


     start-slave 启动从服务器进程 

     stop-slave 关闭从服务器进程

     variables:显示mysql的各服务器进程


GUI客户端工具

   Navicat for mysql

   Toad for mysql

   SQLyog

   MySQL Front

   phpMyAdmin


创建远程连接的用户:进入mysql

mysql> Create user ‘root‘@172.16.%.%; 

     GRANT all ON *.* TO ‘root‘@172.16.%.% IDENTIFIED BY ‘123.comer‘;  授权并给密码


本文出自 “北极的linux” 博客,请务必保留此出处http://941012521.blog.51cto.com/9253690/1748851

mysql编译安装

原文:http://941012521.blog.51cto.com/9253690/1748851

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!