cmake的重要特性之一是其独立于源码(out-of-source)的编译功能,即编译工作可以在另一个指定的目录中而非源码目录中进行,这可以保证源码目录不受任何一次编译的影响,因此在同一个源码树上可以进行多次不同的编译,如针对于不同平台编译。
一、安装cmake
yum -y install cmake
如果需要解决以来关系:
yum -y install ntp vim-enhanced gcc gcc-c++ flex bison autoconf automake bzip2-devel ncurses-devel zlib-devel libjpeg-devel libpng-devel libtiff-devel freetype-devel libXpm-devel gettext-devel pam-devel libtool libtool-ltdl openssl openssl-devel fontconfig-devel libxml2-devel curl-devel libicu libicu-devel libmcrypt libmcrypt-devel libmhash libmhash-devel
二、编译安装mysql-5.5.33
1、cmake使用方法及参数介绍
cmake指定编译选项的方式不同于make,其实现方式对比如下:
./configure cmake . ./configure --help cmake . -LH or ccmake .
参数说明:
指定安装文件的安装路径时常用的选项: -DCMAKE_INSTALL_PREFIX=/usr/local/mysql //安装目录 -DMYSQL_DATADIR=/data/mysql //数据库存放目录 -DSYSCONFDIR=/etc //MySQL配置文件 默认编译的存储引擎包括:csv、myisam、myisammrg和heap。若要安装其它存储引擎,可以使用类似如下编译选项: -DWITH_INNOBASE_STORAGE_ENGINE=1 //安装innodb存储引擎 -DWITH_ARCHIVE_STORAGE_ENGINE=1 //安装archive存储引擎 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 //安装blackhole存储引擎 -DWITH_FEDERATED_STORAGE_ENGINE=1 //安装frderated存储引擎 -DWITH_MYISAM_STORAGE_ENGINE=1 //安装myisam存储引擎 -DWITH_MEMORY_STORAGE_ENGINE=1 //安装memory存储引擎 若要明确指定不编译某存储引擎,可以使用类似如下的选项: -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 //SSL -DWITH_ZLIB=system -DWITH_LIBWRAP=0 其它常用的选项: -DENABLED_LOCAL_INFILE=1 //允许从本地导入数据 -DDEFAULT_CHARSET=utf8 //使用utf8字符 -DDEFAULT_COLLATION=utf8_general_ci //校验字符 -DEXTRA_CHARSETS=all //安装所有扩展字符集 -DMYSQL_TCP_PORT=3306 //MySQL监听端口 -DMYSQL_USER=mysql //MySQL用户名 -DWITH-EMBEDDED_SERVER=1 //编译成embedded MySQL library (libmysqld.a) -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock //Unix socket 文件路径 -DWITH_PARTITION_STORAGE_ENGINE=1 //安装数据库分区 -DINSTALL_PLUGINDIR=/usr/local/mysql/plugin //插件文件及配置路径
如果想清理此前的编译所生成的文件,则需要使用如下命令: make clean rm CMakeCache.txt
2、编译安装mysql
下载安装包:
wget 172.16.0.1:/pub/Sources/sources/mysql/mysql-5.5.33.tar.gz
①、准备数据存放的文件系统
新建一个逻辑卷,并将其挂载至特定目录即可。
这里其逻辑卷的挂载目录为/mydata,而后需要创建/mydata/data目录做为mysql数据的存放目录。
mkdir /mydata
开机自动挂载:
mkdir /mydata/data
②、新建用户以安全方式运行进程:
1
2
3
|
groupadd -r mysql useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql chown -R mysql:mysql /mydata/data |
③、安装
cd /root 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
④、为mysql提供主配置文件:
1
|
chown -R root . cp support-files/my-large.cnf /etc/my.cnf |
并修改/etc/my.cnf
中thread_concurrency的值为你的CPU个数乘以2,比如这里使用如下行:
thread_concurrency = 2
另外还需要添加如下行指定mysql数据文件的存放位置:
datadir = /mydata/data
⑤、为mysql提供sysv服务脚本:
1
2
3
4
5
6
|
cd /usr/local/mysql cp support-files/mysql.server /etc/rc.d/init.d/mysqld chmod +x /etc/rc.d/init.d/mysqld 添加至服务列表: chkconfig --add mysqld chkconfig mysqld on |
而后就可以启动服务测试使用了。
为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤:
⑥、输出mysql的man手册至man命令的查找路径:
编辑/etc/man.config,添加如下行即可:
1 |
MANPATH /usr/local/mysql/man |
⑦、输出mysql的头文件至系统头文件路径/usr/include:
这可以通过简单的创建链接实现:
1 |
ln -sv /usr/local/mysql/ include /usr/ include /mysql
|
⑧、输出mysql的库文件给系统库查找路径:
1 |
echo ‘/usr/local/mysql/lib‘ > /etc/ld.so.conf.d/mysql.conf
|
而后让系统重新载入系统库:
1 |
ldconfig |
⑨、修改PATH环境变量,让系统可以直接使用mysql的相关命令。
vim /etc/profile.d/mysql.sh
1 |
|
1 |
. /etc/profile.d/mysql.sh
|
service mysqld start
⑩、第一次进入数据库
删除所有匿名用户
mysql> DROP USER ‘‘@‘localhost‘; mysql> DROP USER ‘‘@‘www.magedu.com‘;
三、Linux下mysql一些基本命令
启动:service mysqld start;
进入:mysql ; mysql -u root -p ; mysql -h localhost -u root -p databaseName;
列出数据库:show databases;
选择数据库:use databaseName;
列出表格:show tables;
显示表格列的属性:show columns from tableName;
建立数据库:source fileName.txt;
给所有的root用户设定密码:
第一种方式:
mysql> SET PASSWORD FOR username@host = PASSWORD(‘your_passwrod‘);
第二种方式:
mysql> UPDATE user SET password = PASSWORD(‘your_password‘) WHERE user = ‘root‘;
mysql> FLUSH PRIVILEGES;
第三种方式:
mysqladmin -uUserName -hHost password ‘new_password‘ -p
mysqladmin -uUserName -hHost -p flush-privileges
匹配字符:可以用通配符_代表任何一个字符,%代表任何字符串; _: 匹配任意单个字符
增加一个字段:alter table tabelName add column fieldName dateType;
增加多个字段:alter table tabelName add column fieldName1 dateType,add columns fieldName2 dateType;
多行命令输入:注意不能将单词断开;当插入或更改数据时,不能将字段的字符串展开到多行里,否则硬回车将被储存到数据中;
增加一个管理员帐户:grant all on *.* to user@localhost identified by "password";
每条语句输入完毕后要在末尾填加分号‘;‘,或者填加‘\g‘也可以;
查询时间:select now();
查询当前用户:select user();
查询数据库版本:select version();
查询当前使用的数据库:select database();
1、删除student_course数据库中的students数据表:
rm -f student_course/students.*
2、备份数据库:(将数据库test备份)
mysqldump -u root -p test>/tmp/test.txt
备份表格:(备份test数据库下的mytable表格)
mysqldump -u root -p test mytable>/tmp/test1.txt
将备份数据导入到数据库:(导回test数据库)
mysql -u root -p test
mysql的快捷键:
Ctrl + w: 删除光标之前的单词
Ctrl + u: 删除光标之前至命令行首的所有内容
Ctrl + y: 粘贴使用Ctrl+w或Ctrl+u删除的内容
Ctrl + a: 移动光标至行首
Ctrl + e: 移动光标至行尾
mysqldmin工具:
mysqladmin [options] command [arg] [command [arg]] ...
command:
create DB_NAME
drop DB_NAME
debug: 打开调试日志并记录于error log中;
status:显示简要状态信息
--sleep #: 间隔时长
--count #: 显示的批次
extended-status: 输出mysqld的各状态变量及其值,相当于执行“mysql> SHOW GLOBAL STATUS”
variables: 输出mysqld的各服务器变量
flush-hosts: 清空主机相关的缓存:DNS解析缓存,此前因为连接错误次数过多而被拒绝访问mysqld的主机列表
flush-logs: 日志滚动,二进制日志和中继日志
refresh: 相当于同时使用flush-logs和flush-hosts
flush-privileges:
reload: 功能同flush-privileges
flush-status: 重置状态变量的值
flush-tables: 关闭当前打开的表文件句柄
flush-threads:清空线程缓存
kill: 杀死指定的线程,可以一次杀死多个线程,以逗号分隔,但不能有多余空格
password: 修改当前用户的密码;
ping:
processlist:显示mysql线程列表
shutdown: 关闭mysqld进程;
start-slave
stop-slave: 启动/关闭从服务器线程
本文出自 “斜视天花板” 博客,请务必保留此出处http://lemidi.blog.51cto.com/8601832/1390787