1. 程式人生 > >奪命雷公狗---linux NO:34 linux下的mysql安裝與連接

奪命雷公狗---linux NO:34 linux下的mysql安裝與連接

初始 目錄 -1 分享 希望 網上 groupadd mysql安裝 libaio

mysql 其實是可以通過 yum install mysql-server 來進行安裝的,不過考慮到很多服務器自身帶寬的原因,其實用的不是特別的多,看實際情況來定。。。

當然yum 安裝出來的可能版本也會較低,如果希望安裝出來的新版本的,其實也是可以自行的安裝的,通用版本。。

我們使用的版本是 5.7.17

也可以通過搜狐的鏡像站點進行下載,如下所示:

技術分享

技術分享

在裏面看到這麽多直接搜索下mysql-5.7.17-linux 這樣即可看到如下所示:

技術分享

上面紅色框的就是我們要下載的。。。如果系統是64位的就選擇下面那個。。。

然後復制地址,在linux 下使用 wget 讓他下載過來,如下所示:

技術分享

經過漫長的等待終於下載好了:

技術分享

然後對她進行解壓:

技術分享

這兩個是剛解壓出來的。。

然後我們進入mysql的官網看看如何安裝:

技術分享


Installing MySQL on Unix/Linux Using Generic Binaries 這裏是 linux 的通用二進制版本的意思,選這個即可。。。

技術分享

然後在這裏即可看到他的安裝方法了,網上搜索出來的很多方法都是按這個方法而來的。。。。

技術分享

在手冊上很明顯的看到我們使用的mysql 要依賴libaio的庫。。。

技術分享

那麽我們就先來安裝他咯:

技術分享

技術分享

和在解壓後大致就看到這幾個目錄:

技術分享

那麽我們解壓他出來研究研究。。

技術分享

技術分享

官方手冊安裝的簡介,如下所示:

shell> groupadd mysql   #添加一個mysql的組
shell> useradd -r -g mysql -s /bin/false mysql  #添加一個用戶屬於mysql組  -s /bin/false mysql的意思是不讓使用shell環境,防止被別人攻擊
shell> cd /usr/local  #進入  /usr/local  這個目錄下
shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz  #然後解壓
shell> ln -s full-path-to-mysql-VERSION-OS mysql
#獎勵一個mysql的快捷方式 shell> cd mysql #到上面位置只是完成了量將是,第一:獎勵一個組和用戶 第二:解壓後然後cd進去。。。 shell> mkdir mysql-files #創建一個目錄名字為:mysql-files shell> chmod 750 mysql-files #然後將mysql-files的權限改成750 shell> chown -R mysql . #將當前的所有者改成mysql shell> chgrp -R mysql . #把所有的組改成mysql所有的組 shell> bin/mysql_install_db --user=mysql # MySQL 5.7.5 shell> bin/mysqld --initialize --user=mysql # MySQL 5.7.6 and up shell> bin/mysql_ssl_rsa_setup # MySQL 5.7.6 and up shell> chown -R root . shell> chown -R mysql data mysql-files shell> bin/mysqld_safe --user=mysql & # Next command is optional shell> cp support-files/mysql.server /etc/init.d/mysql.server 大致分為: 先添加用戶,cd到目錄下,然後改變目錄的權限和所有者,初始化,初始化完成後再改變一下目錄的所有者,最後啟動

然後我們開始嘗試嘗試。。。

但是我們去缺少了一個data目錄:

技術分享

技術分享

那麽我們使用命令 mkdir data 為他創建一個,如下所示:

技術分享

現在我們的文件是存放在/usr/local/src/mysql-5.7.17-linux-glibc2.5-i686 下,然後我們按照官方手冊的要求,將他移動到 /usr/local/ 下,並改名為 mysql ,他的默認名他長了。。。。。

mv mysql-5.7.17-linux-glibc2.5-i686 /usr/local/mysql

技術分享

然後進入 /usr/local/mysql 的目錄下:

技術分享

開始按照手冊上的來玩咯:

先添加一個mysql的組:

技術分享

然後創建一個 mysql 用戶,並且將他加入mysql的組,而且無權使用shell命令:

技術分享

然後創建一個名為:mysql-files 的目錄:

技術分享

然後修改mysql-files 750的權限:

技術分享

然後修改所有者,將當前的目錄的所有者改成mysql 所有:

技術分享

然後將當前目錄的組也改成mysql組所有。。。

技術分享

然後開始初始化mysql:

技術分享

回車後顯示如下所示:

技術分享

dsXvnrdb4f+Q 這個是臨時密碼,關鍵是每次安裝他生成的臨時密碼都是不同的。。。。

因為 mysql 5.7以前安裝好了都是空密碼的,但是5.7以後他都為我們生成了一個臨時密碼,所以說每次都一定要保存好這個密碼否則就會很郁悶的啦、、、

然後還要再改一次權限:

技術分享

然後再將 data目錄 和mysql-files 目錄改成 mysql 用戶所有。。

技術分享

然後正式啟動mysql服務了。。。

技術分享

然後我們來查看下他是否啟動成功了:

技術分享

很遺憾,沒成功。。。。。。

那只有唯一的選擇了,看日誌,找問題,日誌的地址在: /var/log/mysqld.log 下..

技術分享

然後按空格鍵即可到下一頁了。。

技術分享

創建不了。。。

然後我們進入 /var/run/mysqld/ 下看看有木有創建了 mysqld.pid 的文件。。

技術分享

裏面就連 mysqld 這個目錄都木有啊。。。

木有這個目錄,那麽我們人工用個他創建一個不就可以了唄。。。。

技術分享

但是還是不夠的,因為這個mysqld是被mysqld這個進程所使用的。。

技術分享

這個目錄是所屬root的,所以他沒權操作,我們要將他轉讓一下即可。。

技術分享

然後再來查看下即可發現已經成功轉讓權限了。。

技術分享

然後再來啟動他,如果再錯,再去查看日誌咯。。。。

./bin/mysqld_safe --user=mysql &

技術分享

然後再來ps 查看下。。。

技術分享

不過這次成功了。。。

然後我們進入bin 目錄看看。。

技術分享

我們剛才啟動的是他的mysqld 那麽我們連接上mysql客戶端看看。。

技術分享

又報了一個錯。。

通過/temp/mysql.sock 連接不上服務器。。。

sock類似一個插座,原理圖如下所示:

技術分享

在mysql和mysqld交互的原理圖,如上所示。。。

我們可以從報錯信息中很清晰的看出問題所在,因為我們色sock他存放到了 /var/lib/mysql/mysql.sock 裏面了,而他則去了 /tmp/mysql.sock 尋找了。。

技術分享

這樣的情況下我們可以直接使用連接來決解:

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

方法1:

#ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

技術分享

然後在走。。。。

技術分享

雖然還是沒連上,但是剛才那個錯誤已經決解掉了。而且這次報的是密碼錯誤,這證明已經連接上的了,然後我們用密碼連接測試一下:

技術分享

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

方法2:

我們將剛才的連接ln幹掉,相當於服務器讓步的這步給幹掉。。

技術分享

然後我們讓客戶端進行讓步處理,為了測試,我們還是進行連一下測試下:

技術分享

又報錯了,那麽我們我們來查一查相關的幫助:

技術分享

這裏很明顯,說客戶端是可以通過參數去指定他去那裏尋找sock文件的。。

./mysql -S /var/lib/mysql/mysql.sock

技術分享

又看到了 password:NO 。。。這說明又成功連接上了,只是密碼錯誤而已,那麽我們通過如下方法即可連接上了:

技術分享

這樣就OK啦,不過這個臨時密碼太難記了,可以通過如下方法進行修改:

alter user root@localhostidentified by root888;

這裏的 root888 就是新密碼

技術分享

OK,完成。。。。。。

奪命雷公狗---linux NO:34 linux下的mysql安裝與連接