本週給大家帶來的是關於mysql的二進制格式的安裝,我們對於mysql的安裝一般有兩種方式,一是通過yum安裝,二是通過二進制格式的安裝,第一種方法yum安裝的方式非常簡單,如下:
Centos6:yum install mysql-server Centos7:yum instlal mariadb-server
但是簡單的背後就是各種限制,數據庫文件被限制,配置文件也被限制,軟件版本的限制,我們只能被動的使用,而如果我們使用二進制格式的安裝就可以指定數據庫文件放在什麼地方,配置文件也都是我們自己制定,有利於靈活的使用,還有新版本的使用,還有一種不方便的安裝方式,那便是自己手動編譯安裝,因爲mysql文件其實蠻大的,編譯過後可能超過10G,而且編譯也需要大量的時間,所以我們就把別人編譯過得二進制文件拿過來安裝,本次實驗是基於Centos7,安裝包爲mariadb-10.2.8-linux-x86_64.tar.gz
首先,我們需要新建一個mysql的用戶,出於安全設置其登錄方式爲/sbin/nologin,指定其家目錄爲/app/mysqldb,我的這個/app是專門新建的一個文件夾,因爲以後我們的數據庫文件會放在這裏,在生產環境中,該文件夾中的數據庫會越來越大,如果我們使用的是lvm邏輯卷的方式,還可以擴展,而使用的普通分區就儘量選擇大一點的文件夾,新建用戶代碼如下:
useradd -d /app/mysqldb -r -m -s /sbin/nologin mysql
我們需要在https://downloads.mariadb.org/獲取mariadb-10.2.8-linux-x86_64.tar.gz,然後解壓縮到指定的目錄/usr/local/,這個是固定的目錄,不可更改,我們卻切換到該目錄下,爲了方便我們把該目錄進行鏈接爲/mysql
tar xvf mariadb-10.2.8-linux-x86_64.tar.gz -C /usr/local/ cd /usr/local/ ln -s mariadb-10.2.8-linux-x86_64/ mysql
做完這些我們查看了一下,在/etc下並沒有關於mysql的相關配置,所以需要我們自己來完成該配置文件的完成,新建了一個mysql的目錄,是爲了便於管理,畢竟/etc下的文件很多,找到我們新建的文件中的[mysqld]的下面加入我們需要的三行代碼,
mkdir /etc/mysql/ cd /usr/local/mysql/ cp support-files/my-huge.cnf /etc/mysql/my.cnf vim /etc/mysql/my.cnf [mysqld] datadir = /app/mysqldb #指定數據庫的目錄 innodb_file_per_table = on #將每個表都放在單獨的文件夾中 skip_name_resolve = on #禁止主機名解析(不關閉,會導致數據庫運行慢)
然後我們開始指定安裝,我們還在/usr/local/mysql/下,爲什麼要這樣安裝呢,是因爲別人在編譯腳本里已經寫死了,所以我們在這個相對路徑下,才能安裝成功
scripts/mysql_install_db --user=mysql --datadir=/app/mysqldb
安裝過後,爲了使我們以後的使用更加方便,所以我們需要我們進行以下操作:
cp support-files/mysql.server /etc/init.d/mysqld chkconfig --list mysqld #查看chkconfig中是否有我們的mysqld chkconfig --add mysqld #添加mysqld進入chkconfig service mysqld start #啓動mysqld,跟系統應用一樣的方式,不過這一步註定會失敗
失敗的原因是什麼呢?缺少日誌文件,或者說對日誌沒有讀寫的權限,所以我們要更改我們要更改文件夾的所有者或者使用ACl,爲了簡便,我使用了改變所有者的方式:
mkdir /var/log/mariadb/ chown mysql /var/log/mariadb/ service mysqld start #啓動成功
然後我們需要把執行路徑修改一下,因爲我們不能使用都打出全部路徑,那樣也太蠢了。
vi /etc/profile.d/mysql.sh #寫入文件,以後也能生效 PATH=/usr/local/mysql/bin:$PATH #增加到PATH中 . /etc/profile.d/mysql.sh #source一下,生效。
然後我們的mysql就算完成了,爲什麼說算呢?因爲安全隱患:mysql安裝之後,有安全隱患,無論什麼身份只要在本機,就能以root登錄mysql,mysql可以匿名鏈接,不過權限不大,也算是小安全隱患
解決:
/usr/bin/mysql_secure_installation
這個腳本是個交互式的,不過很簡單,我們在裏面關閉匿名登錄,和設置口令就可以保證mysql的進一步的安全,不過下一次登錄時,需要輸入密碼;
mysql -uroot -p #-u[user] [-hhost]不寫默認本機登錄 -p[PASSWD] 就是口令
至此我們的mysql的二進制的安裝就完成了,然後就可以愉快的使用了!