1.版本:
??????? 版本:Ubuntu16.04
??????? mysql-5.7.21
??????? Boost 1.59.0
??????? 注:版本的問(wèn)題很重要焚虱,在安裝的時(shí)候也是因?yàn)榘姹镜膯?wèn)題折騰了很久粒梦。
2.mysql 的編譯安裝:
1)配置環(huán)境:
sudo apt-get update
sudo apt-get install cmake -y??????????? # 搭建跨平臺(tái)安裝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常用圖形庫(kù)
sudo apt-get install cmake??????????????? #cmake編譯器
sudo apt-get install bison????????????????? #Linux下C/C++語(yǔ)法分析器
sudo apt-get install libncurses5-dev?????????????????? #Linux系統(tǒng)編程游戲開(kāi)發(fā)寨典,會(huì)用到這個(gè)庫(kù)
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安裝程序的目錄和數(shù)據(jù)文件的目錄 以及修改目錄的用戶和組:
sudo mkdir /usr/local/mysql
sudo mkdir /usr/local/mysql/Data
sudo chown -R mysql.mysql /usr/local/mysql
配置mysql:
用cmake配置mysql預(yù)編譯參數(shù):
? ? ? ? ? ? -DCMAKE_INSTALL_PREFIX:安裝路徑
? ? ? ? ? ? -DMYSQL_DATADIR:數(shù)據(jù)存放目錄
? ? ? ? ? ? -DWITH_BOOST:boost源碼路徑?
? ? ? ? ? ? -DSYSCONFDIR:my.cnf配置文件目錄
? ? ? ? ? ? -DEFAULT_CHARSET:數(shù)據(jù)庫(kù)默認(rèn)字符編碼
? ? ? ? ? ? -DDEFAULT_COLLATION:默認(rèn)排序規(guī)則
? ? ? ? ? ? -DENABLED_LOCAL_INFILE:允許從本文件導(dǎo)入數(shù)據(jù)
? ? ? ? ? ? -DEXTRA_CHARSETS:安裝所有字符集
注:請(qǐng)對(duì)照上面的內(nèi)容來(lái)根據(jù)自己的文件信息來(lái)進(jìn)行下一步^_^務(wù)必要一一對(duì)應(yīng)自己的!
我的目錄:
/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的解壓包路徑下進(jìn)行迄委!)
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
注:如果上一步?jīng)]有報(bào)錯(cuò),就繼續(xù)下一步:
編譯安裝:(在mysql的解壓包路徑下進(jìn)行哑姚!)
sudo make
sudo make install
4)配置mysql:
初始化數(shù)據(jù)庫(kù):(mysql 的安裝路徑下)
sudo ./bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/Data
注意:如果使用–initialize參數(shù)初始化系統(tǒng)數(shù)據(jù)庫(kù)之后倦青,會(huì)在~/.mysql_secret文件中生成root用戶的一個(gè)臨時(shí)密碼章蚣,同時(shí)也在初始化日志中打印出來(lái)了^_^
注:同志們好啊,如果上一步?jīng)]有任何錯(cuò)誤姨夹,就可以跳過(guò)這一段了纤垂!今天重新安裝了一遍,用的mysql的版本是mysql-5.6.25!!
出現(xiàn)了這個(gè)錯(cuò)誤:./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啟動(dòng)報(bào)錯(cuò)Table 'mysql.plugin' doesn't exis
然后我接著來(lái):
sudo ./bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/Data
出現(xiàn)了錯(cuò)誤提示:說(shuō)? --initialize-insecure這個(gè)咚咚是有問(wèn)題的磷账,我看過(guò)一篇文檔峭沦,提到在mysql5.7版本以后才有這個(gè)咚咚,于是我把這個(gè)咚咚給去掉
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
這樣就開(kāi)啟成功了!!
日期: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
注:看網(wǎng)上的文檔逃糟,是有點(diǎn)問(wèn)題的吼鱼,這是同學(xué)阿戴幫解決的.他們是在/var/run/mysqld目錄下創(chuàng)建mysql.sock文檔的蓬豁!?即:socket=/var/run/mysqld/mysqld.sock;但是這樣的問(wèn)題就是造成了每次開(kāi)機(jī)重啟時(shí)var/run下面就自動(dòng)清除了mysqld文件夾,這是因?yàn)?var/run/目錄下建立文件夾是在內(nèi)存中菇肃,于是乎地粪,啟動(dòng)mysqld報(bào)錯(cuò)說(shuō)不能在該路徑下創(chuàng)建sock文件。我們?cè)谶@里改動(dòng)為socket=/usr/local/mysql/mysqld.sock這樣就可以解決了問(wèn)題K霭蟆技!
參考文檔? :
安裝mysql5.7后無(wú)法啟動(dòng),/var/run/mysqld 目錄每次重啟后都需要手動(dòng)去創(chuàng)建--終極解決方案
創(chuàng)建socket連接的目錄:
sudo mkdir -p /var/run/mysqld
修改目錄的用戶和組:
sudo chown mysql:mysql /var/run/mysqld
啟動(dòng)mysql:(/usr/local/mysql/bin即mysql安裝目錄的bin 目錄下)
sudo./mysqld --user=mysql
這樣就可以啟動(dòng)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??????????????? #這樣就可以直接開(kāi)啟mysql了^_^
sudo?? -i????????????????? #root
mysql-uroot-p??????????????????? #這樣就進(jìn)入了數(shù)據(jù)庫(kù)!
注:密碼為空
編寫(xiě)日期:2018-6-28?
因?yàn)殚_(kāi)始重新開(kāi)機(jī)后不能正常啟動(dòng)mysqld斗忌,所以有了下面的方法去暫時(shí)解決
我們?cè)谏厦嬉呀?jīng)搞定了這個(gè)問(wèn)題质礼,所以就,喝喝茶~~~
更新日期:2018-6-28日10點(diǎn)
今日织阳,重新啟動(dòng)mysql
mysqld --user=mysql
出現(xiàn)了錯(cuò)誤信息:
[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)建上面的那個(gè)咚咚眶蕉,于是,打開(kāi) /var/run/目錄唧躲,并沒(méi)有發(fā)現(xiàn)mysqld文件夾.
解決辦法:
sudo mkdir -p /var/run/mysqld
sudo chown mysql:mysql /var/run/mysqld
再次啟動(dòng)mysql
Version: '5.7.21' socket: '/var/run/mysqld/mysqld.sock' port: 3306 Source distribution
啟動(dòng)成功T焱臁!
但是這樣有個(gè)問(wèn)題弄痹,每次啟動(dòng)之后刽宪,還會(huì)報(bào)這個(gè)錯(cuò)(手動(dòng)二哈)
更新日期:2018-6-29??中午8點(diǎn)
人人為我,我為人人!