当前位置:8090st.com >服务配置 > 查看文章
阿里云优惠码

编译安装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’;  授权并给密码

相关文章
为您推荐
各种观点
暂时还木有人评论,坐等沙发!
发表评论

您必须 [ 登录 ] 才能发表留言!