编译安装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
原文:http://941012521.blog.51cto.com/9253690/1748851