VirturalBox中搭建CentOS開發環境實錄(二)

安裝MySQL

Yum安裝:html

官方安裝步驟:http://dev.mysql.com/doc/refman/5.7/en/linux-installation-yum-repo.htmlmysql

>sudo yum install mysql-community-server

源碼安裝:linux

官方安裝步驟:https://dev.mysql.com/doc/refman/5.7/en/installing-source-distribution.html
c++

注意,不一樣的mysql版本,有不一樣的安裝步驟,請從官網查閱資料。sql

1.下載:http://dev.mysql.com/downloads/mysql,選擇最新版的Source Code,我這裏是5.7.9shell

2.安裝必要的軟件包,若是有些包已經安裝,能夠根據狀況從後面的列表中去除這些包:數據庫

>yum -y install gcc gcc-c++ autoconf automake zlib* libxml ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake

3.解壓瀏覽器

>tar -zxvf mysql-5.7.9.tar.gz 
>cd mysql-5.7.9 --默認狀況下是安裝在/usr/local/mysql

4.編譯bash

>cmake . --注意後面有個點‘.’,表明當前目錄

注意,以上的cmake . 命令是使用全部默認的配置進行編譯,若是但願調整部分設置,請參考官網描述:服務器

https://dev.mysql.com/doc/refman/5.7/en/source-configuration-options.html

可是咱們用源碼安裝的目的就是但願自定義有些屬性,所以通常會修改某些配置,好比:

>cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc/mysql/ \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_EXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci

5.問題解決

在cmake這一步可能遇到如下錯誤:

說不能找到boost庫,但能夠經過加上-DDOWNLOAD_BOOST=1 –DWITH_BOOST=<directory>來解決。從上圖描述來看,若是boost不在<directory>下,則該選項能夠在自動下載boost而且自動解壓縮。因而增長了這兩個參數:

>cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc/mysql/ \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_EXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/home/user/Software/boost_1_59_0

而後被告知解壓的時候失敗了,查看了自動下載的boost庫:

發現這個文件存在,文件大小爲173Byte,因而嘗試手動解壓,結果解壓失敗:

因而懷疑這個文件有問題,所以去這個地址手動下載一個:

>wget http://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz

結果新下載的文件長度仍是173Byte,解壓仍是失敗。

接下來去物理機上下載這個文件,在瀏覽器上打開這個連接,發現文件有80多MB:

下載後,拷貝到虛擬機,再解壓,再使用cmake命令:

這就是爲何以前的包裏面包含ncurses-devel了。

>yum install ncurses-devel

以後再使用cmake,不過,此次的結果跟上圖同樣。緣由是:

上圖來自:http://dev.mysql.com/doc/refman/5.7/en/installing-source-distribution.html

刪除CMakeCache.txt後再從新編譯,此次終於成功了:

6.而後就是make了:

接下來,make會利用源代碼生成可執行的庫文件,咱們會看到構建的進度,這一步要好久,請耐心等待,直到到達100%

7.最後,make install,直到安裝完成。

總結:儘管在官方安裝步驟中有說明系統需求,但沒有提早說明安裝須要依賴哪些庫,致使在安裝過程當中出現了沒必要要的重複。所以,在參照官方安裝步驟的同時建議多蒐集資料。

8.初始化:

>cd /usr/local/mysql
>chown -R mysql .
>chgrp -R mysql .
>bin/mysql_install_db --user=mysql    # Before MySQL 5.7.6
>bin/mysqld --initialize --user=mysql # MySQL 5.7.6 and up
>bin/mysql_ssl_rsa_setup              # MySQL 5.7.6 and up
>chown -R root .
>chown -R mysql data

注意,在執行bin/mysqld --initialize --user=mysql這一句的時候,會生成一個root帳戶的臨時密碼(隨機的),密碼直接寫在 log-error 日誌文件中(在5.6版本中是放在 ~/.mysql_secret 文件裏,更加隱蔽,不熟悉的話可能會無所適從)。並且官方說In this case, the password is marked as expired and you will need to choose a new one. 

固然,也能夠在執行mysqld使用--initialize-insecure參數,這將不會爲root帳戶設置密碼。

官方說明:

To initialize the data directory, invoke mysqld with the --initialize or --initialize-insecure option, depending on whether you want the server to generate a random initial password for the 'root'@'localhost' account.

下圖是使用--initialize-insecure參數的初始化過程:

在初始化過程當中,mysql會檢查data目錄,若是該目錄不存在,則mysql會建立;若是存在且不爲空,則會報錯。所以,若是遇到這樣的錯誤:

[ERROR] --initialize specified but the data directory exists. Aborting.

[ERROR] --initialize specified but the data directory has files in it. Aborting.

請在執行mysqld前保證datadir 目標目錄下是空的,避免誤操做破壞已有數據。同時指定

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

這兩個參數,像上圖同樣。

 固然,這兩個參數也能夠寫在mysql的配置文件my.cnf中:

[mysqld]
basedir=/opt/mysql/mysql
datadir=/opt/mysql/mysql/data

而後把這個文件傳給mysqld:

>bin/mysqld --defaults-file=/opt/mysql/mysql/etc/my.cnf \
  --initialize --user=mysql

9.啓動:

9.1.使用mysqld_safe啓動

>bin/mysqld_safe --user=mysql &

若是該命令執行失敗,而且打印了mysqld ended字樣,則說明啓動失敗,此時須要查看日誌文件,默認的位置是 data目錄下的host_name.err。

順便補充一下mysqld_safe這個命令。

參考:https://dev.mysql.com/doc/refman/5.7/en/mysqld-safe.html

  • mysqld_safe是在Unix平臺啓動mysqld的推薦方式,它是一個執行腳本,會去調用mysqld這個腳本。

  • 許多mysqld_safe的選項與mysqld相同。對於mysqld_safe不能識別的參數,將傳給mysqld,可是在配置文件(15步有說明)中的選項將被忽略掉。

  • mysqld_safe會讀取配置文件中的[mysqld]、[server]和[mysqld_safe]部分的全部配置。

  • mysqld_safe會把它的錯誤或提示消息跟mysqld的放在同一個地方

關於mysqld_safe能支持的全部選項,請參照上方連接。

9.2.使用mysql.server啓動

參考:https://dev.mysql.com/doc/refman/5.7/en/mysql-server.html

>support_files/mysql.server start

MySQL的Linux發行版中還包含了一個叫mysql.server的腳本,它經過調用mysqld_safe腳原本啓動mysql。這個腳本在安裝完MySQL後被放在support-files文件夾中:

mysql.server讀取[mysqld]、[mysql.server]部分的選項。咱們能夠在/etc/mysql/my.cnf文件中配置相關選項。關於其支持的全部選項,請參照上方連接。

若是初始化的時候使用的是--initialize選項,登陸的時候,粘貼剛剛生成的密碼:

若是使用的是--initialize-insecure選項,登陸的時候,直接按回車鍵便可:

10.修改臨時密碼:

參考:http://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html

11.重設root與其餘用戶的密碼:

重設root密碼,在設置設置密碼以後從新登陸時,是須要輸入密碼的:

建立其餘用戶,設置密碼,並受權:

12.將mysql的bin加入到path中

我把path添加到當前用戶目錄的bashrc中,若是須要全局設定,請修改`/etc/profile`

>cd ~ 
>vi .bashrc

加入如下內容:

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

>source .bashrc
>echo $PATH

這樣之後就能夠直接使用mysql而不用./mysql這樣執行了。

13.將mysql加入到系統服務:

#Next command is optional
>cd /usr/local/mysql
>cp support-files/mysql.server /etc/init.d/mysql   --拷貝腳本到init.d目錄下
>chmod +x /etc/init.d/mysql  --增長可執行權限
>chkconfig --add mysql  --將mysql增長爲系統運行級別的服務

以後,就可使用service來啓動mysql了:

>service mysql start

注意上面的命令要用sudo或者用root用戶執行。

14.中止mysql

使用mysql.server來中止mysql

>cd /usr/local/mysql/support-files
>./mysql.server stop

當拷貝這個文件到/etc/init.d文件夾後,能夠這樣中止:

>/etc/init.d/mysql stop

當加入到系統服務後,能夠這樣中止:

>service mysql stop

還可使用mysqladmin命令來中止:

>mysqladmin shutdown

15.在MySQL中使用配置文件

參考:

https://dev.mysql.com/doc/refman/5.7/en/option-files.html

https://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

在MySQL5.7.5以前,在Unix平臺上, mysql_install_db 會在安裝目錄下建立一個默認的叫my.cnf的配置文件. 該文件是從發行包中一個叫my-default.cnf的模板文件複製而來。當經過使用mysqld_safe來啓動MySQL時,服務器默認使用my.cnf 文件作配置。

從第8步能夠看到,因爲當前安裝的版本爲5.7.9,所以使用的是mysqld來初始化mysql的,所以這個my.cnf文件須要本身拷貝。

能夠經過如下命令查看MySQL完整配置:

>mysqld --verbose --help

在Unix, Linux和OS X系統上,MySQL程序會按表格中的前後順序從如下文件中讀取啓動配置:

File Name Purpose
/etc/my.cnf Global options
/etc/mysql/my.cnf Global options
SYSCONFDIR/my.cnf Global options
$MYSQL_HOME/my.cnf Server-specific options
defaults-extra-file The file specified with --defaults-extra-file=file_name, if any
~/.my.cnf User-specific options
~/.mylogin.cnf Login path options

其中:

~表明當前用戶的主目錄( 即$HOME

SYSCONFDIR 表明在安裝MySQL時在CMake參數上指定的SYSCONFIGDIR選項(從我上面的參數來看,此變量的值爲/etc/mysql/)。

既然my.cnf是由my-default.cnf複製而來,那咱們就去找找這個my-default.cnf文件:

其中,/home/user/Soft   ware/mysql-5.7.9是我用源碼解壓的位置,這裏面的my-default.cnf就是最初的配置模板了。而/usr/local/mysql/是我安裝mysql的目錄,這下面的my-default.cnf文件是在安裝時從解壓目錄拷貝而來的。把這個文件拷貝到上述表格中的某個文件夾下:

>cp /usr/local/mysql/support-files/my-default.cnf /etc/mysql/my.cnf

並打開看看:

其實裏面只有一個配置,其他的都被註釋掉了。模板文件中也提到了,須要什麼配置,以及怎樣配置,請參考:

https://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

修改配置後,重啓一下MySQL就能應用了。


安裝MySQL Workbench

MySQL-Workbench是一款很好用的MySQL圖形化工具。不管是寫SQL,分析數據,數據庫建模都比mysql方便的多。

1.Yum安裝

先去這裏下載mysql的yum repository: http://dev.mysql.com/downloads/repo/yum/

以後安裝:

>sudo rpm -Uvh mysql57-community-release-el6-n.noarch.rpm

而後就能找到mysql-workbench-community了:

安裝:

>sudo yum install mysql-workbench-community

以後會提醒這一大堆庫須要先安裝:

有個tinyxml庫實在很差找,但我在這裏下載到了:

ftp://ftp.pbone.net/mirror/download.fedora.redhat.com/pub/fedora/epel/6/x86_64/tinyxml-2.6.1-1.el6.x86_64.rpm (64bit)

http://dl.fedoraproject.org/pub/epel/6/i386/tinyxml-2.6.1-1.el6.i686.rpm(32bit)

以後安裝這個庫:

>sudo rpm -i tinyxml-2.6.1-1.el6.i686.rpm

並等待安裝完成:

 

2.RPM安裝

先去這裏下載對應的rmp包:http://dev.mysql.com/downloads/workbench/

>sudo rpm -i mysql-workbench-community-6.3.5-1.el6.x86_64.rpm

3.源碼安裝

下載:http://dev.mysql.com/downloads/workbench/ 選擇Source Code

因爲自行編譯依賴的包實在太多,並且限於網速,還有就是沒有多少資料可供參考,所以不建議使用此方式安裝。

接下來就享受愉快的MySQL Workbench之旅吧!




參考:

http://my.oschina.net/looly/blog/297980

相關文章
相關標籤/搜索