安装系统:Red Hat Enterprise Linux 6.4

CPU:2C

MEM:2G

安装介质:mysql-5.6.25.tar.gz


安装之前应该先把yum源配置好(推荐在线yum源,因为有些包RHEL光盘中没有)


# 安装必要软件包,主要用于后面的cmake编译使用
yum install gcc gcc-c++ autoconf automake zlib-* ncurses* flex* libxml* libcrypt* make cmake bison
# 如果libtool-ltdl-devel*装不上,请按照以下从光盘安装。
# yum install libltdl.so.7
# rpm -ivh /media/Packages/libtool-ltdl-devel* \\ /media为光盘挂载点
# 查看cmake版本
[root@mysql2 ~]# cmake -version
cmake version 2.6-patch 4
新建mysql用户和组
groupadd mysqluseradd mysql -g mysql -M -s /bin/false \\ 设置mysql用户不能登录系统并且属于mysql组
上传mysql源码介质包mysql-5.6.25.tar.gz
安装mysql-5.6.25
# 解压至/usr/local
tar zxvf mysql-5.6.25.tar.gz -C /usr/local/
# 切换至所在目录
cd /usr/local/mysql-5.6.25/
用cmake设置安装
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
> -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
> -DMYSQL_USER=mysql \
> -DEXTRA_CHARSETS=all \
> -DDEFAULT_CHARSET=utf8 \
> -DDEFAULT_COLLATION=utf8_general_ci \
> -DWITH_MYISAM_STORAGE_ENGINE=1 \
> -DWITH_INNOBASE_STORAGE_ENGINE=1 \
> -DWITH_DEBUG=0 \
> -DWITH_READLINE=1 \
> -DWITH_EMBEDDED_SERVER=1 \
> -DENABLED_LOCAL_INFILE=1
# 一键编译安装
make && make install
# 设置开机自启
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
chkconfig --level 35 mysqld on
# 设置权限
chmod 755 /etc/rc.d/init.d/mysqld
以mysql用户帐号的身份建立数据表:
chown -R mysql.mysql /usr/local/mysql
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
/usr/local/mysql/scripts/mysql_install_db \
--defaults-file=/etc/my.cnf \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data/ \
--user=mysql
# 启动mysql
service mysqld start
# 设置环境变量
echo 'export /usr/local/mysql/bin:$PATH' >> /etc/profile
source /etc/profile
# 设置mysql密码为123456
[root@mysql1 etc]# mysql
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.6.25-log Source distribution


Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> update mysql.user set password = password(123456) where user = 'root';
Query OK, 0 rows affected (0.02 sec)
Rows matched: 4 Changed: 0 Warnings: 0


mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)


mysql> quit
Bye
# 查看进程与监听端口号
[root@mysql2 ~]# netstat -anpt | grep 3306
tcp 0 0 192.168.60.129:52086 192.168.60.128:3306 ESTABLISHED 2513/mysqld
tcp 0 0 :::3306 :::* LISTEN 2513/mysqld
[root@mysql2 ~]# ps -ef | grep mysqld
root 2302 1 0 09:09 ? 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/mysql2.pid
mysql 2513 2302 0 09:09 ? 00:00:12 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/usr/local/mysql/data/mysql2.err --pid-file=/usr/local/mysql/data/mysql2.pid
root 5730 3056 0 16:12 pts/0 00:00:00 grep mysqld


如果不小心忘记了密码

忘记密码,修改密码
# 首先先停掉mysql
[root@mysql2 ~]# service mysqld stop
Shutting down MySQL.. [ OK ]
# 跳过密码验证
[root@mysql2 ~]# mysqld_safe --skip-grant-tables --user=mysql &
[1] 5894
[root@mysql2 ~]# 150615 16:15:22 mysqld_safe Logging to '/usr/local/mysql/data/mysql2.err'.
150615 16:15:22 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
#使用空密码登陆
[root@mysql2 ~]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.6.25-log Source distribution

Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> update mysql.user set password = password(123456) where user = 'root';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 4 Changed: 0 Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> quit
Bye
# 重新启动mysql
[root@mysql2 ~]# service restart mysqld
restart: unrecognized service
[root@mysql2 ~]# service mysqld restart
Shutting down MySQL..150615 16:16:43 mysqld_safe mysqld from pid file /usr/local/mysql/data/mysql2.pid ended
[ OK ]
Starting MySQL. [ OK ]
[1]+ Done mysqld_safe --skip-grant-tables --user=mysql
# 使用用户名密码登陆
[root@mysql2 ~]# mysql -u root -p123456

==========================================================================================================

mysql基础操作

①单实例数据库mysql的启动命令:/etc/init.d/mysqld start。出现故障的时候使用mysql_safe --user=mysql来进行启动。就是把安装包里面的mysql.server脚本拷贝的。(shell脚本)。
②检查端口:ss -lntup|grep 330或者使用netstat -lntup|grep 330.
③检查进程:ps -ef|grep mysql|grep -v grep 两个主要的进程,一个就是mysql_safe一个是mysqld。
④mysql启动的基本原理:/etc/init.d/mysqld start是一个shell的启动脚本,启动后会最终调用mysqld_safe脚本,最后调用mysqld服务器启动mysql。文件vim /application/mysql/support-files/mysql.server 中的$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 &
⑤初始化时候启动方法:mysql_safe --user=mysql &,当找回root密码的时候用此方法启动,和/etc/init.d/mysqld 的启动实质是一样的。
⑥常用关闭mysql命令:/etc/init.d/mysqld stop 然后查看端口是否关闭。
⑦mysql关闭的原理:在脚本文件/etc/init.d/mysqld文件中内容有两个地方需要注意:if (kill -0 $mysqld_pid 2>/dev/null)还有一个地方就是kill $mysqld_pid。
⑧强制关闭数据库方法:
killall mysqld
pkill mysqld
killall -9 mysqld
⑨优雅关闭数据库方法:
第一种:mysqladmin方法:mysqladmin -uroot -p123456 shutdown
##${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /data/${port}/mysql.sock shutdown
第二种:自带脚本方法:/etc/init.d/mysqld stop
第三种:kill 信号方法:kill -USR2 ‘cat path/pid’(最好不要使用)

##mysql登陆之后管理操作:

一、连接MYSQL。 
登录:mysql -h主机地址 -u用户名 -p用户密码

##删除用户及库:
select user,host from mysql.user;
delete from mysql.user where user=‘’ host=‘’;
drop database test;
##删除test库,用户只留下root 127.0.0.1和root localhost
delete from mysql.user;
grant all privieges on *.* to system@'localhost' identified by '密码' with grant option;
退出:MYSQL命令: exit (回车)
##删除多于账号语法drop user “user”@“主机域”
##注意可以是单引号或者双引号,但是不能不加。
##注意如果有时候使用drop删除不掉,那么使用delete进行删除。
delete from mysql.user where user=‘root’ and host=‘oldboy’
flush privileges
二、密码设置
1、增加密码
/application/mysql/bin/mysqladmin -u root password '密码'

2、修改密码
格式:mysqladmin -u用户名 -p旧密码 password 新密码
mysqladmin -uroot -p旧密码 -password 新密码

三、增加新用户。
基本格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码"
1、例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:
grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";
但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。
2、例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";
如果你不想test2有密码,可以再打一个命令将密码消掉。
grant select,insert,update,delete on mydb.* to test2@localhost identified by "";
##可以授权的权限:

1 SELECT(查询)
2 UPDATE(更新)
3 INSERT(插入)
4 DELETE(删除)
5 CREATE (创建库表)
6 DROP (删除库表)
7 REFERENCES
8 INDEX (索引)
9 ALTER (修改)
10 CREATE TEMPORARY TABLES (创建临时表)
11 LOCK TABLES (锁表)
12 EXECUTE (执行)
13 CREATE (VIEW 创建视图)
14 SHOW VIEW (显示视图)
15 CREATE ROUTINE (创建存储过程)
16 ALTER ROUTINE (修改存储过程)
17 EVENT (事件)
18 TRIGGER (触发器)

###企业生产环境MySQL如何授权:
##博客,CMS等产品的数据库授权:
#①web连接用户授权采用最小化授权,很多开源软件都是web界面安装的,所以在安装期间,除了select、insert、update,delete四个权限(增删改查)之外,还要有create、drop等比较危险的授权。
grant select,insert,update,delete,create,drop on blog.* to 'blog'@'192.168.109.%' identified by '123456';
##常规情况下只授权4个基本权限即可。在安装完毕之后将create和drop权限收回,让他只能增删改查。
REVOKE INSERT ON *.* FROM 'jeffrey'@'localhost';
REVOKE create ON blog.* FROM 'blog'@'10.0.0.%';
REVOKE drop ON blog.* FROM 'blog'@'10.0.0.%';
##现在的bbs数据库,可能还不能收回这两个权限,因为缓存表我们需要清空的。收回权限之后,可能就需要后台去删除缓存表。所以一定要评估企业中的权限到底需要那些。
##注意主从数据库的授权可能不一样。(主库从库复制,可能写从主库,读从从库,读写分离。)
#②查看用户授权:
[root@MySQL-M ~]# /data/3308/mysql start
Starting MySQL...
[root@MySQL-M ~]# mysql -uroot -p123456 -S /data/3308/mysql.sock
mysql> show grants for 'oldboy'@'localhost';
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Grants for oldboy@localhost |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'oldboy'@'localhost' IDENTIFIED BY PASSWORD '*FE28814B4A8B3309DAC6ED7D3237ADED6DA1E515' |
| GRANT SELECT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `test`.* TO 'oldboy'@'localhost' |
+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
四、显示命令
1、显示数据库列表。
show databases;
select database(); 查看当前库中内容
刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。
2、显示库中的数据表:
use mysql;
show tables;
select user(); 查看当前表中内容
3、显示数据表的结构:
describe 表名;
4、建库:
create database 库名;
5、建表:
use 库名;
create table 表名 (字段设定列表);
6、删库和删表:
drop database 库名;
drop table 表名;
7、将表中记录清空:
delete from 表名;
8、显示表中的记录:
select * from 表名;
9、字符集相关:
show create database 库名\G
mysql -uroot -p123456 -e “show character set;” #查看当前数据库MySQL系统支持的字符集。
mysql -uroot -p123456 -S /data/3308/mysql.sock --default-character-set=latinl #带字符集命令行登陆多实例数据库
create database oldboy;默认数据库的字符集为拉丁字符集。
create database oldboy_gbk DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; gbk字符集
create database oldboy_utf8 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;utf8字符集

10、show grants for root@localhost; #查看某一个用户权限信息
11、排序问题:
###升序排表:mysql> select user,host,password from mysql.user order by user asc;
###倒序排表:mysql> select user,host,password from mysql.user order by user desc;


密码问题设置相关(多数据库实例方案)

①mysql数据库默认的管理员密码为空,很不安全的。
简单安全措施:为root设置密码、删除无用的mysql库内用户账号,删除默认存在的test数据库。
②更严格的数据库安全设置:
1)删除所有的mysql中的用户,包括root超级用户。
mysql> delete form mysql.suer; 后做
2)增加system用户并提升为超级管理员,即和root等阶的用户,知识名字不一样。(思路先后流程:先建立再删除,不然先删除之后挡在外面就完蛋了。)
mysql> grant all privileges on *.* to syatem@'localhost'identified by '123456' with grant option; 先做
③为管理员root用户设置密码的方法:
1)单实例,没有密码的用户设置密码 mysqladmin -u root password ‘123456’
2)多实例,mysqladmin -u root -p ‘123456’ password ‘tslove123456’-S /data/3306/mysql.sock
④修改管理员root密码法一:(命令行外修改)
mysqladmin -u root password ‘123456’ password ‘new passwd’
mysqladmin -u root -p ‘123456’ password ‘tslove123456’-S /data/3306/mysql.sock
⑤修改管理员root密码法二:使用sql语句修改。

mysql> select user,host from mysql.user;
+------+-----------+
| user | host |
+------+-----------+
| root | 127.0.0.1 |
| root | MySQL-M |
| root | localhost |
+------+-----------+
3 rows in set (0.00 sec)

mysql> desc mysql.user
| Password | char(41) (找到密码字段)
mysql> select user,host,password from mysql.user;
+------+-----------+-------------------------------------------+
| user | host | password |
+------+-----------+-------------------------------------------+
| root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | MySQL-M | |
| root | 127.0.0.1 | |
+------+-----------+-------------------------------------------+
3 rows in set (0.00 sec)

mysql> update mysql.user set password='123456' where user='root' and host='localhost';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select user,host,password from mysql.user;
+------+-----------+----------+
| user | host | password |
+------+-----------+----------+
| root | localhost | 123456 |
| root | MySQL-M | |
| root | 127.0.0.1 | |
+------+-----------+----------+
3 rows in set (0.00 sec)
###以上修改成明文的数据库密码之后,单实例登录可能会遇到问题,多实例登录无异常。
##注意加上条件where,和密码函数,不然可能会修改全部的mysql用户密码。
##将修改的密码加密显示如下:
mysql> update mysql.user set password=password(123456) where user='root' and host='localhost';
Query OK, 1 row affected (0.03 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> select user,host,password from mysql.user;
+------+-----------+-------------------------------------------+
| user | host | password |
+------+-----------+-------------------------------------------+
| root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | MySQL-M | |
| root | 127.0.0.1 | |
+------+-----------+-------------------------------------------+
3 rows in set (0.04 sec)
mysql> flush privileges; 【刷新到文件中(没刷新的时候在内存中)】
Query OK, 0 rows affected (0.00 sec)
###命令
update mysql.user set password=password(456) where user='root' and host='localhost';
##这种修改密码的方法适合于root密码丢失找不回来的情况下使用。
##另外直接set来修改当前登陆用户密码:(不适合密码丢失找不回来情况下的解决)
mysql> set password=password('123456');
##不管什么情况下修改密码都要刷新操作flush privileges;
##生产环境密码的设置应该是8位数的并且有字母数字的混合。

##1、必须指定条件
##2、必须指定passwrord()密码函数来加密更改密码。
##3、所以一般我们不实用sql语言和set来修改密码。
##4、所以我们一般使用mysqladmin 和update来修改密码。最常用的就死mysqladmin。
⑥找回丢失的mysql密码(多实例方案)
单实例:首先停止mysql,然后使用--skip-grant-tables启动mysql,忽略授权登陆验证。
[root@MySQL-M ~]# ss -lntup|grep mysql
tcp LISTEN 0 128 *:3307 *:* users:(("mysqld",56075,11))
tcp LISTEN 0 128 *:3308 *:* users:(("mysqld",57957,12))
tcp LISTEN 0 128 *:3306 *:* users:(("mysqld",56816,12))
[root@MySQL-M ~]# /data/3306/mysql stop
Stoping MySQL...
[root@MySQL-M ~]# /data/3307/mysql stop
Stoping MySQL...
[root@MySQL-M ~]# /data/3308/mysql stop
Stoping MySQL...
[root@MySQL-M ~]# ss -lntup|grep mysql
####单实例忽略授权表登录mysql_safe --skip-grant-tables --user=mysql
mysqld_safe --skip-grant-tables --user=mysql &
#然后直接mysql进入数据库
#此时不能使用mysqladmin来修改密码,mysqladmin修改密码必须要有原来的密码。
#使用updata修改密码(注意使用双引号将密码括起来),刷新权限。
#如此更改密码之后需要重新启动mysql,否则还是忽略授权表。
#没有使用/etc/init.d/mysqld启动,所以此时也不能是命令停止mysal(pid文件相关)。
#此时使用mysqladmin -uroot -p(update修改后的密码)shutdown 来停止数据库mysql。之后再用正常的方式启动mysql。
##注意使用shutdown停止数据库之后,重启数据库,否则别的数据库使用者用户登录受到影响。
####多实例(指定配置文件):
#启动和关闭:使用killall mysql或者service mysqld stop,关闭mysql。
#启动时候使用
mysql_safe --defaults-file=/data/3306/my.cnf --skip—grant-tabes \\多实例需指定--defaults-file配置文件
mysqld_safe --defaults-file=/data/3306/my.cnf --skip-grant-table
mysql -u root -p -S /data/3306/mysql.sock <==登陆时空密码。 \\多实例需指定实例文件名




关于编译安装查看了很多资料,总结了以下四点


1. 命令语法:  

重新编译时,需要清除旧的对象文件和缓存信息
# make clean
# rm -f CMakeCache.txt

2.安装选项

CMAKE_INSTALL_PREFIX值是安装的基本目录,其他cmake选项值是不包括前缀,是相对路径名,绝对路径包括 CMAKE_INSTALL_PREFIX路径。如-DINSTALL_SBINDIR=sbin的绝对路径是/usr/local/mysql /sbin

3.存储引擎选项
mysql存储引擎是插件式的,因此插件控制选项可以指定那个存储引擎安装。
configure编译插件选项--with-plugins=csv,myisam,myisammrg,heap,innobase,
archive,blackhole在cmake中没有直接对应的相同选项。对于csv,myisam,myisammrg,heap在cmake中是不需要明确指定存储引擎的名称,因为它们是强制性安装。

可以使用以下选择来安装innodb,archive,blackhole存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1

-DWITH_ARCHIVE_STORAGE_ENGINE=1

-DWITH_BLACKHOLE_STORAGE_ENGINE=1

(1可以使用on代替)

如果既不是-DWITH_<ENGINE>_STORAGE_ENGINE 也不是 -DWITHOUT_<ENGINE>_STORAGE_ENGINE 来指定存储引擎,该存储引擎将安装成共享模块式的。如果不是共享模块式的将排除在外。共享模块安装时必须使用INSTALL PLUGIN语句或--plugin-load才可以使用。

4.其他选项
之前MySQL的编译选项大多数都支持。新旧版本之间的安装选项映射成大写字母,删除选项前面破折号,中间字符间的破折号替换成下划线。如:
--with-debug => WITH_DEBUG=1

--with-embedded-server => WITH_EMBEDDED_SERVER

5.调试配置过程
使用configure编译完将生成config.log和config.status文件。
使用cmake编译完在CMakeFiles目录下生成CMakeError.log 和CMakeOutput.log文件。


贴出来一些源码编译时候的参数解释


BUILD_CONFIG   采用官方发行版一致的编译参数  
CMAKE_BUILD_TYPE 指定产品编译说明信息 RelWithDebInf
CMAKE_INSTALL_PREFIX 指定MySQL安装路径 /usr/local/mysql
CPACK_MONOLITHIC_INSTALL是否建立单个安装包文件 OFF 5.5.7
DEFAULT_CHARSET MYSQL 默认字符集 latin1 5.5.7
DEFAULT_COLLATION MYSQL 默认排序字符集 latin1_swedish_ci 5.5.7
ENABLE_DEBUG_SYNC 是否启用同步调试功能 ON 5.5.7
ENABLE_DOWNLOADS 是否下载可选文件 OFF 5.5.7
ENABLE_DTRACE 是否包含 DTrace 支持 5.5.7
ENABLE_GCOV 是否包含 Gcov 支持 5.5.14
ENABLED_LOCAL_INFILE 是否启用本地 LOAD DATA INFILE OFF 5.5.7
ENABLED_PROFILING 是否启用代码查询分析 ON 5.5.7
INSTALL_BINDIR MySQL 主执行文件目录 PREFIX/bin 5.5.7
INSTALL_DOCDIR 文档安装路径 PREFIX/docs 5.5.7
INSTALL_DOCREADMEDIR 自述文件目录 PREFIX 5.5.7
INSTALL_INCLUDEDIR 头文件目录 PREFIX/include 5.5.7
INSTALL_INFODIR 关于信息文件目录 PREFIX/docs 5.5.7
INSTALL_LAYOUT 选择预定义的安装 STANDALONE 5.5.7
INSTALL_LIBDIR 库文件目录 PREFIX/lib 5.5.7
INSTALL_MANDIR 手册页面目录 PREFIX/man 5.5.7
INSTALL_MYSQLSHAREDIR 共享数据目录 PREFIX/share 5.5.7
INSTALL_MYSQLTESTDIR mysql-test 目录 PREFIX/mysql-test 5.5.7
INSTALL_PLUGINDIR 插件目录 PREFIX/lib/plugin 5.5.7
INSTALL_SBINDIR 服务器超级用户执行文件目录 PREFIX/bin 5.5.7
INSTALL_SCRIPTDIR 脚本目录 PREFIX/scripts 5.5.7
INSTALL_SHAREDIR aclocal/mysql.m4 安装目录 PREFIX/share 5.5.7
INSTALL_SQLBENCHDIR sql-bench 性能测试工具目录 PREFIX 5.5.7
INSTALL_SUPPORTFILESDIR 扩展支持文件目录 PREFIX/support-files 5.5.7
MYSQL_DATADIR 数据库存放目录 5.5.7
MYSQL_MAINTAINER_MODE 是否启用MySQL的维护环境 OFF 5.5.7
MYSQL_TCP_PORT TCP/IP 端口号 3306 5.5.7
MYSQL_UNIX_ADDR Unix Socket 套接字文件 /tmp/mysql.sock 5.5.7
SYSCONFDIR 选项配置文件目录 5.5.7
WITH_COMMENT 编译环境发表评论 5.5.7
WITH_DEBUG 是否包括调试支持 OFF 5.5.7
WITH_EMBEDDED_SERVER 是否要建立嵌入式服务器 OFF 5.5.7
WITH_xxx_STORAGE_ENGINE 静态编译xxx 存储引擎到服务器 5.5.7
WITH_EXTRA_CHARSETS 额外的字符集,包括 all 5.5.7
WITH_LIBWRAP 是否包括支持libwrap(TCP包装) OFF 5.5.7
WITH_READLINE 使用捆绑的readline OFF 5.5.7
WITH_SSL 是否支持SSL no 5.5.7
WITH_ZLIB 是否支持Zlib system 5.5.7
WITHOUT_XXX_STORAGE_ENGINE 不编译XXX存储引擎到数据库

从mysql5.5起,mysql源码安装开始使用cmake。下面是 mysql 5.5 与以前的参数对照:


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

Parameter configure Option CMake Option CMake Notes
Installation base directory --prefix=/usr -DCMAKE_INSTALL_PREFIX=/usr
mysqld directory --libexecdir=/usr/sbin -DINSTALL_SBINDIR=sbin interpreted relative to prefix
Data directory --localstatedir=/var/lib/mysql -DMYSQL_DATADIR=/var/lib/mysql
Config directory (for my.cnf) --sysconfdir=/etc/mysql -DSYSCONFDIR=/etc/mysql
Plugin directory --with-plugindir=/usr/lib64/mysql/plugin -DINSTALL_PLUGINDIR=lib64/mysql/plugin interpreted relative to prefix
Man page directory --mandir=/usr/share/man -DINSTALL_MANDIR=share/man interpreted relative to prefix
Shared-data directory --sharedstatedir=/usr/share/mysql -DINSTALL_SHAREDIR=share this is where aclocal/mysql.m4 should be installed
Library installation directory --libdir=/usr/lib64/mysql -DINSTALL_LIBDIR=lib64/mysql interpreted relative to prefix
Header installation directory --includedir=/usr/include/mysql -DINSTALL_INCLUDEDIR=include/mysql interpreted relative to prefix
Info doc directory --infodir=/usr/share/info -DINSTALL_INFODIR=share/info interpreted relative to prefix

Parameter configure Option CMake Option CMake Notes
readline library --with-readline -DWITH_READLINE=1
SSL library --with-ssl=/usr -DWITH_SSL=system
zlib library --with-zlib-dir=/usr -DWITH_ZLIB=system
libwrap library --without-libwrap -DWITH_LIBWRAP=0

Parameter configure Option CMake Option CMake Notes
TCP/IP port number --with-tcp-port-=3306 -DMYSQL_TCP_PORT=3306
UNIX socket file --with-unix-socket-path=/tmp/mysqld.sock -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock
Enable LOCAL for LOAD DATA --enable-local-infile -DENABLED_LOCAL_INFILE=1
Extra charsets --with-extra-charsets=all -DEXTRA_CHARSETS=all default is "all"
Default charset --with-charset=utf8 -DDEFAULT_CHARSET=utf8
Default collation --with-collation=utf8_general_ci -DDEFAULT_COLLATION=utf8_general_ci
Build the server --with-server none
Build the embedded server --with-embedded-server -DWITH_EMBEDDED_SERVER=1
libmysqld privilege control --with-embedded-privilege-control none always enabled?
Install the documentation --without-docs none
Big tables --with-big-tables, --without-big-tables none tables are big by default
mysqld user --with-mysqld-user=mysql -DMYSQL_USER=mysql mysql is the default
Debugging --without-debug -DWITH_DEBUG=0 default is debugging disabled
GIS support --with-geometry none always enabled?
Community features --enable-community-features none always enabled
Profiling --disable-profiling -DENABLE_PROFILING=0 enabled by default
pstack --without-pstack none pstack is removed
Assembler string functions --enable-assembler none
Build type --build=x86_64-pc-linux-gnu no equivalent unneeded?
Cross-compile host --host=x86_64-pc-linux-gnu no equivalent unneeded?
Client flag --with-client-ldflags=-lstdc++ none unneeded
Client flag --enable-thread-safe-client none unneeded, clients are always thread safe
Comment --with-comment='string' -DWITH_COMMENT='string'
Shared/static binaries --enable-shared --enable-static none there is only DISABLE_SHARED
Memory use --with-low-memory none unneeded



更多相关文章

  1. Shell脚本创建linux用户帐户但密码出错
  2. linux忘记root密码的两种修改方法
  3. ubuntu下的Samba配置:使每个用户可以用自己的用户名和密码登录自
  4. Linux环境下修改MySQL数据库存储引擎
  5. 在centos中安装了mysql5.7之后解决不知道随机的密码的问题
  6. ubuntu修改根用户密码
  7. 解决useradd 用户后没有添加用户Home目录的情况,Linux改变文件或
  8. mysql数据库忘记ROOT密码时的解决办法
  9. 无法从SQLite数据库获取最后一行

随机推荐

  1. 实现PHP微信红包API接口
  2. PHP连接MySQL数据库操作实现
  3. 掌握php短信接口代码
  4. 掌握PHP语言对接抖音快手小红书视频/图片
  5. PHP+MySql实现简单的留言板功能
  6. 阿里云PHP SMS短信服务验证码发送方法详
  7. 直击php中static,const与define的使用区
  8. 详解php版阿里云OSS图片上传类
  9. 全栈工程师看过来!PHP Javascript语法对照
  10. php array_combine()函数实例详解