1. 程式人生 > >Mysql DBA 高級運維學習筆記-MySQL5.5編譯方式安裝實戰

Mysql DBA 高級運維學習筆記-MySQL5.5編譯方式安裝實戰

ant uname 安裝目錄 當我 b- hole 課程 用戶訪問 tmp

本文為老男孩Mysql DBA 高級運維課程學習筆記的第三節,感謝老男孩老師,我
是一個菜鳥如果有寫的不正確的地方請各位大神及時指點。

4.源碼cmake方式編譯安裝MySQL5.5.32

4.1 下載mysql安裝包

MySQL從5.3開始使用cmake的安裝方式。

本次實戰選用mysql5.5.32

MySQL系列下載地址
http://dev.mysql.com/downloads/mysql/5.5.html#downloads

下載cmake
wget http://www.cmake.org/files/v2.8/cmake-2.8.8.tar.gz

4.2 查看系統環境

[root@mysql ~]# cat /etc/redhat-release 

Red Hat Enterprise Linux Server release 6.7 (Santiago)

[root@mysql ~]# uname -m
x86_64

[root@mysql ~]# uname -r

2.6.32-573.el6.x86_64

4.3 安裝cmake
[root@mysql ~]# mkdir -p /home/zbf

[root@mysql ~]# mkdir -p /home/zbf/tools

[root@mysql ~]# cd /home/zbf/tools/

[root@mysql tools]# tar -zxf cmake-2.8.8.tar.gz 

[root@mysql tools]# cd cmake-2.8.8

[root@mysql cmake-2.8.8]# ./configure

提示用gmake安裝,用make也可以

技術分享圖片

[root@mysql cmake-2.8.8]# gmake

[root@mysql cmake-2.8.8]# gmake install

安裝依賴包

[root@mysql tools]# yum install ncurses-devel -y

4.5 開始安裝mysql

4.5.1 創建用戶和組

[root@mysql tools]# groupadd mysql

[root@mysql tools]# useradd -g mysql mysql

4.5.2 解壓編譯mysql

[root@mysql tools]# tar -zxf mysql-5.5.32.tar.gz

[root@mysql tools]# cd mysql-5.5.32

[root@mysql mysql-5.5.32]#cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql         #指定安裝目錄

 -DMYSQL_DATADIR=/usr/local/mysql/data   #指定數據存放目錄重要

 -DMYSQL_UNIX_ADDR=/usr/local/mysql/tmp/mysql.sock  #指定sock路徑

 -DDEFAULT_CHARSET=utf8   #指定默認字符集

 -DDEFAULT_COLLATION=utf8_general_ci  #指定校準字符集編碼

 -DEXTRA_CHARSETS=all       #安裝所需字符集

 -DENABLED_LOCAL_INFILE=ON  #啟用加載本地數據

 -DWITH_INNOBASE_STORAGE_ENGINE=1   #支持innode引擎 

 -DWITH_FEDERATED_STORAGE_ENGINE=1  #支持federated引擎

 -DWITH_BLACKHOLE_STORAGE_ENGINE=1  #支持黑洞存儲引擎

 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1  

 -DWITHOUT_PARTITION_STORAGE_ENGINE=1   #支持安裝數據庫分區 

 -DWITH_FAST_MUTEXES=1  

 -DWITH_ZLIB=bundled    #zlib壓縮模式

 -DENABLED_LOCAL_INFILE=1  

 -DWITH_READLINE=1  

 -DWITH_EMBEDDED_SERVER=1  

 -DWITH_DEBUG=0     #禁用debug,開啟影響性能

 [root@mysql mysql-5.5.32]# make && make install

[root@mysql mysql-5.5.32]# ln -s /home/zbf/tools/mysql-5.5.32 /usr/local/mysql/

特別說明:常規configure編譯方式安裝以及免編譯方式安裝等等的安裝方法,都是上面的過程不同,下面相同。

4.5.3 初始化配置MySQL

4.5.3.1 查看默認模板配置文件

[root@mysql mysql-5.5.32]# ll support-files/my*cnf

-rw-r--r--. 1 root root  4723 1月  11 19:03 support-files/my-huge.cnf

-rw-r--r--. 1 root root 19791 1月  11 19:03 support-files/my-innodb-heavy-4G.cnf

-rw-r--r--. 1 root root  4697 1月  11 19:03 support-files/my-large.cnf

-rw-r--r--. 1 root root  4708 1月  11 19:03 support-files/my-medium.cnf

-rw-r--r--. 1 root root  2872 1月  11 19:03 support-files/my-small.cnf 

4.5.3.2 選擇配置文件

配置文件很多我們選一個小的,因為是測試環境

[root@mysql mysql-5.5.32]# cp support-files/my-small.cnf /etc/my.cnf

cp:是否覆蓋"/etc/my.cnf"? y

4.5.3.3 配置環境變量

[root@mysql mysql-5.5.32]# echo ‘export PATH=/usr/local/mysql/bin:$PATH‘ >> /etc/profile

[root@mysql mysql-5.5.32]# tail -1 /etc/profile

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

[root@mysql mysql-5.5.32]# source /etc/profile

[root@mysql mysql-5.5.32]# echo $PATH

/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

註意一定要把/usr/local/mysql/bin放在前邊,因為在以後安裝的系統裏很可能有yum安裝的客戶端。如果不把/usr/local/

mysql/bin放在前邊當我們輸入mysql的時候它會調用系統rpm的mysql命令。這裏有一個配置環境變量的例子,下面例子來自老男孩老師的博客。大家可以看一看 http://blog.51cto.com/oldboy/1122867。

4.5.3.4 初始化數據文件

#已經有了,沒有的話創建一個mysql數據文件目錄

[root@mysql mysql-5.5.32]# ll /usr/local/mysql/data/

總用量 4

drwxr-xr-x. 2 root root 4096 1月  11 19:17 test

#授權mysql用戶訪問mysql的安裝目錄

[root@mysql mysql-5.5.32]# chown -R mysql.mysql /usr/local/mysql/data/

#調整/tmp權限,否則初始化會錯誤

[root@mysql mysql-5.5.32]# chmod -R 1777 /tmp/

#初始化註意這個初始化和5.1不一樣,在scripts下面

[root@mysql mysql-5.5.32]# cd /usr/local/mysql/scripts/

[root@mysql scripts]# ./mysql_install_db --basedir=/usr/local/

mysql/ --datadir=/usr/local/mysql/data/ --user=mysql

現在mysql就安裝完成了,安裝完成之後我們一定要來看一下初始化的信息,因為它

給我們提示了很多信息。

Installing MySQL system tables...

######初始化成功的關鍵是有兩個OK,一般有兩個OK就說明初始化成功了,出現警告不用管
OK

Filling help tables...

OK
###這個是啟動腳本,提示了copy啟動腳本啟動mysql
To start mysqld at boot time you have to copy

support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !

To do so, start the server, then issue the following commands:

#####mysql沒有密碼可以改密碼
/usr/local/mysql//bin/mysqladmin -u root password ‘new-password‘

/usr/local/mysql//bin/mysqladmin -u root -h mysql password ‘new-password‘

Alternatively you can run:

/usr/local/mysql//bin/mysql_secure_installation

which will also give you the option of removing the test

databases and anonymous user created by default.  This is

strongly recommended for production servers.

See the manual for more instructions.

####如果想啟動mysql,可以用下面的方法啟動

You can start the MySQL daemon with:

cd /usr/local/mysql/ ; /usr/local/mysql//bin/mysqld_safe &

###如果想測試可以用這個方法測試

You can test the MySQL daemon with mysql-test-run.pl

cd /usr/local/mysql//mysql-test ; perl mysql-test-run.pl

###如果想匯報bug可以用這個方法匯報bug
Please report any problems with the /usr/local/mysql//scripts/mysqlbug script!

4.5.3.5 復制mysql啟動腳本,啟動mysql

[root@mysql mysql-5.5.32]# cp support-files/mysql.server /etc/

init.d/mysqld

[root@mysql mysql-5.5.32]# chmod +x /etc/init.d/mysqld 

[root@mysql mysql-5.5.32]# /etc/init.d/mysqld start

Starting MySQL.. SUCCESS!

[root@mysql ~]# chkconfig mysqld on

[root@mysql ~]# chkconfig --list mysqld

mysqld  0:關閉    1:關閉    2:啟用    3:啟用    4:啟用    5:啟用    6:關閉

4.6 簡單優化

4.6.1 清楚並修改管理員用戶

ysql> select user,host from mysql.user;
+------+-----------+
| user | host  |
+------+-----------+
| root | 127.0.0.1 |
| root | ::1   |
|  | localhost |
| root | localhost |
|  | mysql |
| root | mysql |
+------+-----------+
6 rows in set (0.01 sec)

mysql> delete from mysql.user where user="";

Query OK, 2 rows affected (0.07 sec) 

mysql> delete from mysql.user where host="mysql";

Query OK, 1 row affected (0.00 sec)

mysql> delete from mysql.user where host="::1";

Query OK, 1 row affected (0.00 sec)

4.6.2 刪除test庫

mysql> show databases;
+--------------------+
| Database   |
+--------------------+
| information_schema |
| mysql  |
| performance_schema |
| test   |
+--------------------+

4 rows in set (0.01 sec)

mysql> drop database test;

Query OK, 0 rows affected (0.11 sec)

4.6.3 退出mysql ,為mysql修改密碼

修改密碼很簡單前面的初始化信息已經說明了

[root@mysql ~]# /usr/local/mysql//bin/mysqladmin -u root 
password ‘123456‘

[root@mysql ~]# mysql -uroot -p123456

Mysql DBA 高級運維學習筆記-MySQL5.5編譯方式安裝實戰