mysql的編譯安裝

1.版本:

??????? 版本:Ubuntu16.04

??????? mysql-5.7.21

??????? Boost 1.59.0

??????? 注:版本的問題很重要,在安裝的時候也是因為版本的問題折騰了很久。

2.mysql 的編譯安裝:

1)配置環(huán)境:

sudo apt-get update

sudo apt-get install cmake -y??????????? # 搭建跨平臺安裝cmake

sudo apt-get install git -y

sudo apt-get install gcc g++ -y???????????????? #安裝C/C++編譯器 gcc編譯器

sudo apt-get install libncurses5 libncurses5-dev -y?????? #安裝LINUX常用圖形庫

sudo apt-get install cmake??????????????? #cmake編譯器

sudo apt-get install bison????????????????? #Linux下C/C++語法分析器

sudo apt-get install libncurses5-dev?????????????????? #Linux系統(tǒng)編程游戲開發(fā),會用到這個庫

2)boost 的安裝:

下載后解壓縮到/usr/local/

sudo mv boost_1_59_0 boost???????

3)編譯安裝mysql:

添加mysql用戶:

sudo groupadd mysql

sudo useradd -r -g mysql mysql

創(chuàng)建mysql安裝程序的目錄和數據文件的目錄 以及修改目錄的用戶和組:

sudo mkdir /usr/local/mysql

sudo mkdir /usr/local/mysql/Data

sudo chown -R mysql.mysql /usr/local/mysql

配置mysql:

用cmake配置mysql預編譯參數:

? ? ? ? ? ? -DCMAKE_INSTALL_PREFIX:安裝路徑

? ? ? ? ? ? -DMYSQL_DATADIR:數據存放目錄

? ? ? ? ? ? -DWITH_BOOST:boost源碼路徑?

? ? ? ? ? ? -DSYSCONFDIR:my.cnf配置文件目錄

? ? ? ? ? ? -DEFAULT_CHARSET:數據庫默認字符編碼

? ? ? ? ? ? -DDEFAULT_COLLATION:默認排序規(guī)則

? ? ? ? ? ? -DENABLED_LOCAL_INFILE:允許從本文件導入數據

? ? ? ? ? ? -DEXTRA_CHARSETS:安裝所有字符集

注:請對照上面的內容來根據自己的文件信息來進行下一步^_^務必要一一對應自己的!

我的目錄:

/usr/local$ ls

bin??????? include??????? mysql-5.7.21.tar.gz???? nginx-1.5.11.tar.gz.1???? boost lib mysql安裝編譯 nginx-install.sh?????? boost_1_59_0.tar.gz??? man??? nginx ?? sbin??etc???????? mysql nginx-1.5.11?? share????games???? mysql-5.7.21????? nginx-1.5.11.tar.gz????? src

cmake方案:(在mysql的解壓包路徑下進行!)

sudo cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/loca/mysql/Data -DWITH_BOOST=/usr/local/boost -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DSYSCONFDIR=/etc -DEXTRA_CHARSETS=all

注:如果上一步沒有報錯,就繼續(xù)下一步:

編譯安裝:(在mysql的解壓包路徑下進行!)

sudo make

sudo make install

4)配置mysql:

初始化數據庫:(mysql 的安裝路徑下)

sudo ./bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/Data

注意:如果使用–initialize參數初始化系統(tǒng)數據庫之后,會在~/.mysql_secret文件中生成root用戶的一個臨時密碼,同時也在初始化日志中打印出來了^_^


注:同志們好啊,如果上一步沒有任何錯誤,就可以跳過這一段了!今天重新安裝了一遍,用的mysql的版本是mysql-5.6.25!!

出現了這個錯誤:./mysqld: Table 'mysql.plugin' doesn't exist

/usr/local/mysql/scripts

sudo ./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/Data

參考文檔:處理mysql啟動報錯Table 'mysql.plugin' doesn't exis

然后我接著來:

sudo ./bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/Data

出現了錯誤提示:說? --initialize-insecure這個咚咚是有問題的,我看過一篇文檔,提到在mysql5.7版本以后才有這個咚咚,于是我把這個咚咚給去掉

sudo ./bin/mysqld? --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/Data

提示:

Version: '5.6.25' socket: '/usr/local/mysql/mysqld.sock' port: 3306 Source distribution

這樣就開啟成功了!!

日期:2018-7-6


/etc目錄下創(chuàng)建my.cnf:

sudo touch my.cnf

sudo vim my.cnf

[client]

port=3306

socket=/usr/local/mysql/mysqld.sock

[mysqld]

port=3306

socket=/usr/local/mysql/mysqld.sock

pid-file=/usr/local/mysql/Data/mysql.pid

basedir=/usr/local/mysql

datadir=/usr/local/mysql/Data

注:看網上的文檔,是有點問題的,這是同學阿戴幫解決的.他們是在/var/run/mysqld目錄下創(chuàng)建mysql.sock文檔的!?即:socket=/var/run/mysqld/mysqld.sock;但是這樣的問題就是造成了每次開機重啟時var/run下面就自動清除了mysqld文件夾,這是因為/var/run/目錄下建立文件夾是在內存中,于是乎,啟動mysqld報錯說不能在該路徑下創(chuàng)建sock文件。我們在這里改動為socket=/usr/local/mysql/mysqld.sock這樣就可以解決了問題??!

參考文檔? :

安裝mysql5.7后無法啟動,/var/run/mysqld 目錄每次重啟后都需要手動去創(chuàng)建--終極解決方案

創(chuàng)建socket連接的目錄:

sudo mkdir -p /var/run/mysqld

修改目錄的用戶和組:

sudo chown mysql:mysql /var/run/mysqld

啟動mysql:(/usr/local/mysql/bin即mysql安裝目錄的bin 目錄下)

sudo./mysqld --user=mysql

這樣就可以啟動mysql了

5)配置mysql的環(huán)境變量:

修改/etc/profile 文件:

sudo vim /etc/profile

export MYSQL_HOME=/usr/local/mysql??????? #mysql的安裝目錄

export PATH=$PATH:$MYSQL_HOME/bin:

source /etc/profile???????????? #使配置文件的修改生效!

修改? /etc/sudoers文件:

Defaults ? ? ? !env_reset??????????? #修改此處!取消重新配置環(huán)境變量!

Defaults? ? ? ? mail_badpass

Defaults? ? ? ? secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

source /etc/sudoers ? ? ? ? ? ? ?? #同樣使配置文件的修改生效!

sudo -i??? #root

mysqld --user=mysql??????????????? #這樣就可以直接開啟mysql了^_^

sudo?? -i????????????????? #root

mysql-uroot-p??????????????????? #這樣就進入了數據庫!

注:密碼為空

編寫日期:2018-6-28?


因為開始重新開機后不能正常啟動mysqld,所以有了下面的方法去暫時解決

我們在上面已經搞定了這個問題,所以就,喝喝茶~~~

更新日期:2018-6-28日10點


今日,重新啟動mysql

mysqld --user=mysql

出現了錯誤信息:

[ERROR] Could not create unix socket lock file /var/run/mysqld/mysqld.sock.lock.

[ERROR] Unable to setup unix socket lock file.?

[ERROR] Aborting

提示我不能創(chuàng)建上面的那個咚咚,于是,打開 /var/run/目錄,并沒有發(fā)現mysqld文件夾.

解決辦法:

sudo mkdir -p /var/run/mysqld

sudo chown mysql:mysql /var/run/mysqld

再次啟動mysql

Version: '5.7.21' socket: '/var/run/mysqld/mysqld.sock' port: 3306 Source distribution

啟動成功!!

但是這樣有個問題,每次啟動之后,還會報這個錯(手動二哈)

更新日期:2018-6-29??中午8點


人人為我,我為人人!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容