天天看點

CentOS7 實戰源碼安裝mysql5.7.17資料庫伺服器

作者:dz菜園子

mysql簡介:

mysql是一個開源的關系型資料庫管理系統,現在是oracle公司旗下的一款産品,由C和C++語言編寫,可移植性高。支援在多種作業系統上安裝,最常見有AIX,linux,window。mysql因為開源免費,是以受到了目前網際網路行業的歡迎。

以mysql作為資料庫,linux系統作為作業系統,apache或者nginx作為web伺服器,perl/php/python作為服務端的腳本解釋器,就可以搭建起一個免費的網站。被業界稱為LNMP或者LAMP

準備工作:

  • 強烈建議:
磁盤空間剩餘量達到15GB
記憶體2G以上
步驟一緻
確定依賴元件安裝完畢
安裝mysql5.7.17一緻
centos 7           
  • 關閉selinux,關閉防火牆:
systemctl stop firewalld.service
vi /etc/selinux/config
SELINUX=disabled           
  • 安裝cmake工具:
yum -y install cmake           
  • 下載下傳boost路徑(mysql5.7.17的必需依賴元件): boost
tar -xf boost_1_59_0.tar.gz           
  • yum安裝其它依賴元件:
yum -y install gcc gcc-c++ bzip2 bzip2-devel bzip2-libs python-devel ncurses ncurses-devel openssl openssl-devel           
  • 建立路徑:
mkdir -p /usr/local/mysql
mkdir -p /data/mydata           
  • 建立mysql使用者:
useradd -M -s /sbin/nologin mysql           

使用cmake工具對mysql5.7.17進行環境收集檢驗與配置相關子產品:

解壓mysql源碼包,并進入解壓後的路徑
tar -xf mysql-5.7.17.tar.gz
cd mysql-5.7.17

cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \-DMYSQL_DATADIR=/data/mydata \-
DSYSCONFDIR=/etc \-DWITH_INNOBASE_STORAGE_ENGINE=1 \-DWITH_ARCHIVE_STORAGE_ENGINE=1 \-
DWITH_BLACKHOLE_STORAGE_ENGINE=1 \-DWITH_READLINE=1 \-DMYSQL_UNIX_ADDR=/tmp/mysql.sock
\-DWITH_SSL=system \-DWITH_ZLIB=system \-DDEFAULT_CHARSET=utf8 \-
DDEFAULT_COLLATION=utf8_general_ci \-DDOWNLOAD_BOOST=1 \-DWITH_BOOST=../boost_1_59_0
\-DENABLE_DOWNLOADS=1


參數詳細資訊解釋:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ #指定mysql資料庫安裝目錄
-DMYSQL_DATADIR=/data/mydata \ #指定資料庫檔案路徑
-DSYSCONFDIR=/etc \ #指定配置檔案目錄
-DWITH_INNOBASE_STORAGE_ENGINE=1 \ #安裝INNOBASE存儲引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \ #安裝ARCHIVE存儲引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ #安裝BLACKHOLE存儲引擎
-DWITH_READLINE=1 \ #使用readline功能
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \ #連接配接檔案位置
-DWITH_SSL=system \ #表示使用系統上的自帶的SSL庫
-DWITH_ZLIB=system \ #表示使用系統上的自帶的ZLIB庫
-DDEFAULT_CHARSET=utf8 \ #指定預設使用的字元集編碼
-DDEFAULT_COLLATION=utf8_general_ci \ #指定預設使用的字元集校對規則
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=../boost_1_59_0 \ #指定Boost庫的位置,mysql5.7必須添加該參數
-DENABLE_DOWNLOADS=1 #支援下載下傳可選檔案           

編譯并安裝:

make -j 4 && make install           

初始化mysql:

/usr/local/mysql/bin/mysqld \--initialize \--user=mysql \--basedir=/usr/local/mysql \-- datadir=/data/mydata \--socket=/tmp/mysql.sock           

對mysql的相關路徑進行更改權限

chown -R mysql:mysql /usr/local/mysql /data/mydata           

修改配置檔案:

vi /etc/my.cnf
[mysqld]
datadir=/data/mydata
socket=/tmp/mysql.sock
symbolic-links=0
[mysqld_safe]
log-error=/usr/local/mysql/log/mysql.errlog
pid-file=/data/mydata/$hostname.pid           

啟停mysql:

[root@localhost support-files]# ./mysql.server start
Starting MySQL.2019-08-03T14:19:37.028727Z mysqld_safe error: log-error set to
'/usr/local/mysql/log/mysql.errlog', however file don't exists. Create writable for user
'mysql'.
ERROR! The server quit without updating PID file
(/data/mydata/localhost.localdomain.pid).

解決:
touch /usr/local/mysql/log/mysql.errlog
chown -R mysql:mysql /usr/local/mysql/log/mysql.errlog

啟動:
/usr/local/mysql/support-files/mysql.server start

關閉:
/usr/local/mysql/support-files/mysql.server stop           

登入mysql:

/usr/local/mysql/bin/mysql -uroot -p           

修改mysql密碼:

set password for 'root'@'localhost'=password('密碼');
mysql> flush privileges;           

添加MySQL服務并設定mysql開機啟動:

cp -a /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysql
chkconfig --add mysql

chkconfig --list mysql
mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off

chkconfig指令主要用來更新(啟動或停止)和查詢系統服務的運作級資訊
等級0表示:表示關機
等級1表示:單使用者模式
等級2表示:無網絡連接配接的多使用者指令行模式
等級3表示:有網絡連接配接的多使用者指令行模式
等級4表示:不可用
等級5表示:帶圖形界面的多使用者模式
等級6表示:重新啟動

使用mysql服務的方式操作啟停mysql服務:
service mysql start #啟動mysql伺服器
service mysql stop
#關閉mysql伺服器
service mysql restart #重新開機mysql伺服器           

設定mysql環境變量

ln -s /usr/local/mysql/bin/* /usr/sbin/           

成功使用 mysql -uroot -p 登入伺服器

個人部落格:cyz

繼續閱讀