灯液未泱-mysql初学安装(一)


安装系统: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 CommandCMake Command
./configurecmake .
./configure --helpcmake . -LH or ccmake .

Parameterconfigure OptionCMake OptionCMake Notes
Installation base directory--prefix=/usr-DCMAKE_INSTALL_PREFIX=/usr 
mysqld directory--libexecdir=/usr/sbin-DINSTALL_SBINDIR=sbininterpreted 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/plugininterpreted relative to prefix
Man page directory--mandir=/usr/share/man-DINSTALL_MANDIR=share/maninterpreted relative to prefix
Shared-data directory--sharedstatedir=/usr/share/mysql-DINSTALL_SHAREDIR=sharethis is where aclocal/mysql.m4 should be installed
Library installation directory--libdir=/usr/lib64/mysql-DINSTALL_LIBDIR=lib64/mysqlinterpreted relative to prefix
Header installation directory--includedir=/usr/include/mysql-DINSTALL_INCLUDEDIR=include/mysqlinterpreted relative to prefix
Info doc directory--infodir=/usr/share/info-DINSTALL_INFODIR=share/infointerpreted relative to prefix

Parameterconfigure OptionCMake OptionCMake 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 

Parameterconfigure OptionCMake OptionCMake 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=alldefault 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-servernone
Build the embedded server--with-embedded-server-DWITH_EMBEDDED_SERVER=1
libmysqld privilege control--with-embedded-privilege-controlnonealways enabled?
Install the documentation--without-docsnone
Big tables--with-big-tables, --without-big-tablesnonetables are big by default
mysqld user--with-mysqld-user=mysql-DMYSQL_USER=mysqlmysql is the default
Debugging--without-debug-DWITH_DEBUG=0default is debugging disabled
GIS support--with-geometrynonealways enabled?
Community features--enable-community-featuresnonealways enabled
Profiling--disable-profiling-DENABLE_PROFILING=0enabled by default
pstack--without-pstacknonepstack is removed
Assembler string functions--enable-assemblernone
Build type--build=x86_64-pc-linux-gnuno equivalentunneeded?
Cross-compile host--host=x86_64-pc-linux-gnuno equivalentunneeded?
Client flag--with-client-ldflags=-lstdc++noneunneeded
Client flag--enable-thread-safe-clientnoneunneeded, clients are always thread safe
Comment--with-comment='string'-DWITH_COMMENT='string'
Shared/static binaries--enable-shared --enable-staticnonethere is only DISABLE_SHARED
Memory use--with-low-memorynoneunneeded



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值