今天來嘗試下源碼編譯安裝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
這就成功安裝完成并啟動了。
> show processlist; 顯示目前mysql伺服器線程清單
修改使用者密碼
> update user set password=password('redhat') where user='root';
<a href="http://s3.51cto.com/wyfs02/M00/30/EC/wKioL1OpljaRrcjJAAFkdH9wXb4123.jpg" target="_blank"></a>
> 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做字元比對。
> show global variables like '%engine%'
<a href="http://s3.51cto.com/wyfs02/M01/31/1C/wKioL1OqOJ2zlWJjAAEObpdPtjg105.jpg" target="_blank"></a>
> show table status\G 顯示表狀态資訊
<a href="http://s3.51cto.com/wyfs02/M00/31/1F/wKiom1OqORSADU-QAAFCB9JEnGU097.jpg" target="_blank"></a>
設定服務變量的值,可以手動動态設定。
> 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
開啟每表一個表空間
>set innodb_file_per_table=1
把查詢到的結果建立成一張表
> 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>
複制一張表的結構,不複制資料。
> create table tb7 like tb10;
<a href="http://s3.51cto.com/wyfs02/M00/33/2C/wKiom1Oqirfi7QtcAAG8jvsyuu8446.jpg" target="_blank"></a>
改名:
> rename table tb12 to mytb;
<a href="http://s3.51cto.com/wyfs02/M02/33/33/wKioL1Oqi8uDdf0wAADDniL_n68575.jpg" target="_blank"></a>
修改表屬性:
給表添加一個age字段
> 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>
更改字段名稱和字段屬性
> 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