今天来尝试下源码编译安装mysql。

这次我们要用到cmake工具,安装cmake。

# yum install cmake 

# tar -xf mysql-5.5.37.tar.gz 

# cd mysql-5.5.37

# groupadd -r mysql

# useradd -g mysql -r -d /mydata/data/ mysql

# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \    指定安装路径

          -DMYSQL_DATADIR=/mydata/data \    指定数据文件路径

          -DSYSCONFDIR=/etc \    指定配置文件路径

  -DWITH_INNOBASE_STORAGE_ENGINE=1 \    指定编译INNOBASE存储引擎

          -DWITH_ARCHIVE_STORAGE_ENGINE=1 \

          -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

 -DWITH_READLINE=1 \    支持数据的导入导出功能

 -DWITH_SSL=system \    支持SSL

 -DWITH_ZLIB=system \    支持zlib库

 -DWITH_LIBWRAP=0 \

 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock \    指定与本机通信的套接字文件

 -DDEFAULT_CHARSET=utf8 \    支持的字符集

          -DDEFAULT_COLLATION=utf8_general_ci    默认排序规则

源码编译安装mysql,DDL数据定义语言的使用。_第1张图片# make && make install

源码编译安装mysql,DDL数据定义语言的使用。_第2张图片

# cd /usr/local/mysql

# ln -sv /usr/local/mysql/include/ /usr/include/mysql

# vim /etc/ld.so.conf.d/mysql.conf

/usr/local/mysql/lib

# ldconfig

# vim /etc/profile.d/mysql.sh

export PATH=/usr/local/mysql/bin:$PATH

# . /etc/profile.d/mysql.sh

# cp support-files/my-large.cnf  /etc/my.cnf

# cp support-files/mysql.server  /etc/init.d/mysqld

# ./scripts/mysql_install_db --user=mysql --datadir=/mydata/data/

# chkconfig --add mysqld

# service mysqld start

这就成功安装完成并启动了。

> show processlist;     显示当前mysql服务器线程列表

修改用户密码

> update user set password=password('redhat') where user='root';

源码编译安装mysql,DDL数据定义语言的使用。_第3张图片

> flush privileges;

如果忘了mysql管理员密码怎么办?

# vim /etc/init.d/mysqld

找到start

在启动服务的地方加入两个参数,--skip-grant  --skip-networking.然后重启服务就可以跳过密码。

源码编译安装mysql,DDL数据定义语言的使用。_第4张图片

显示全局服务变量,用like做字符匹配。

> show global variables like '%engine%'

源码编译安装mysql,DDL数据定义语言的使用。_第5张图片

> show table status\G        显示表状态信息

源码编译安装mysql,DDL数据定义语言的使用。_第6张图片

设置服务变量的值,可以手动动态设置。

> set [ global  session ]  default_storage_engine='MyISAM';

源码编译安装mysql,DDL数据定义语言的使用。_第7张图片

也可以写在配置文件中。

default_storage_engine = MyISAM

开启每表一个表空间

>set  innodb_file_per_table=1

把查询到的结果创建成一张表

> create table tb10  select user,host,password from mysql.user;

源码编译安装mysql,DDL数据定义语言的使用。_第8张图片

复制一张表的结构,不复制数据。

> create table tb7 like tb10;

源码编译安装mysql,DDL数据定义语言的使用。_第9张图片

改名:

> rename table  tb12 to mytb;

源码编译安装mysql,DDL数据定义语言的使用。_第10张图片

修改表属性:

给表添加一个age字段

> alter table mytb add age int unsigned not null first;

源码编译安装mysql,DDL数据定义语言的使用。_第11张图片

更改字段名称和字段属性

> alter table mytb change name student varchar(20) not null ;

源码编译安装mysql,DDL数据定义语言的使用。_第12张图片