天天看點

源碼編譯安裝mysql,DDL資料定義語言的使用。

    今天來嘗試下源碼編譯安裝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    預設排序規則

<a href="http://s3.51cto.com/wyfs02/M01/30/EA/wKioL1Opj47SQMxXAAJcAGhvHYk971.jpg" target="_blank"></a>

# 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

這就成功安裝完成并啟動了。

&gt; show processlist;     顯示目前mysql伺服器線程清單

修改使用者密碼

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

<a href="http://s3.51cto.com/wyfs02/M00/30/EC/wKioL1OpljaRrcjJAAFkdH9wXb4123.jpg" target="_blank"></a>

&gt; flush privileges;

如果忘了mysql管理者密碼怎麼辦?

# vim /etc/init.d/mysqld

找到start

在啟動服務的地方加入兩個參數,--skip-grant  --skip-networking.然後重新開機服務就可以跳過密碼。

<a href="http://s3.51cto.com/wyfs02/M02/30/ED/wKioL1OpmJ3DJhrpAAHYdvkBkoo226.jpg" target="_blank"></a>

顯示全局服務變量,用like做字元比對。

&gt; show global variables like '%engine%'

<a href="http://s3.51cto.com/wyfs02/M01/31/1C/wKioL1OqOJ2zlWJjAAEObpdPtjg105.jpg" target="_blank"></a>

&gt; show table status\G        顯示表狀态資訊

<a href="http://s3.51cto.com/wyfs02/M00/31/1F/wKiom1OqORSADU-QAAFCB9JEnGU097.jpg" target="_blank"></a>

設定服務變量的值,可以手動動态設定。

&gt; set [ global  session ]  default_storage_engine='MyISAM';

<a href="http://s3.51cto.com/wyfs02/M01/31/24/wKioL1OqPiSBKxhDAAHYGmZaHMY006.jpg" target="_blank"></a>

也可以寫在配置檔案中。

default_storage_engine = MyISAM

開啟每表一個表空間

&gt;set  innodb_file_per_table=1

把查詢到的結果建立成一張表

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

<a href="http://s3.51cto.com/wyfs02/M02/32/FC/wKioL1OqiAiTu-pqAALJBLLzTL4840.jpg" target="_blank"></a>

複制一張表的結構,不複制資料。

&gt; create table tb7 like tb10;

<a href="http://s3.51cto.com/wyfs02/M00/33/2C/wKiom1Oqirfi7QtcAAG8jvsyuu8446.jpg" target="_blank"></a>

改名:

&gt; rename table  tb12 to mytb;

<a href="http://s3.51cto.com/wyfs02/M02/33/33/wKioL1Oqi8uDdf0wAADDniL_n68575.jpg" target="_blank"></a>

修改表屬性:

給表添加一個age字段

&gt; alter table mytb add age int unsigned not null first;

<a href="http://s3.51cto.com/wyfs02/M00/33/61/wKiom1OqjhTT3aerAAE3ATNWYgM814.jpg" target="_blank"></a>

更改字段名稱和字段屬性

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

<a href="http://s3.51cto.com/wyfs02/M01/33/7F/wKiom1Oqj9bx4FtZAAE1R1fscKw130.jpg" target="_blank"></a>

 本文轉自qw87112 51CTO部落格,原文連結:http://blog.51cto.com/tchuairen/1430526