奪命雷公狗---linux NO:34 linux下的mysql安裝與連接
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‘@‘localhost‘identified by ‘root888‘;
這裏的 root888 就是新密碼
OK,完成。。。。。。
奪命雷公狗---linux NO:34 linux下的mysql安裝與連接