Centos7服務器中經過編譯源碼安裝MySQL

基於在Centos7服務器上使用 yum 安裝MySQL5.7到默認路徑html

在修改文件存儲位置的時候,折騰了一番沒有將成功將datadir修改成我想要的位置mysql

我決定再嘗試一下經過編譯源碼來自定義安裝:c++

首先下載MySQL5.7的源碼文件sql

https://dev.mysql.com/downloads/mysql/5.7.html#downloads數據庫

下載源碼文件並上傳到服務器vim

上圖中我已經解壓完畢bash

tar zxvf mysql-5.7.24.tar.gz

 

而後在個人home路徑下新建一個mysql文件夾,再在裏面新建一個data文件夾服務器

mkdir -p /home/mysql/data

 

編譯源碼的基礎要有gccui

並且要確保cmake可使用,若是不能夠那就安裝spa

yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio

 

如今進入mysql-5.7.24路徑下,進行操做

首先進行編譯

執行

cmake -DCMAKE_INSTALL_PREFIX=/home/mysql -DMYSQL_DATADIR=/home/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/home/mysql

 

注意最後面的BOOST,MySQL的安裝須要boost,則在編譯時指定下載boost,並執行下載下來的路徑爲mysql

若是沒指定則會報錯

等待編譯成功,而後執行make和make install來安裝

make && make install

 

通過漫長的等待,終於安裝成功啦

如今來看看mysql的路徑

 ****************************************************************

因爲Centos7默認安裝了MariaDB,我已經將其拆卸,可是mysql的用戶組以及用戶還在,這樣我就不須要再建立了

 

還須要將 /home/mysql賦予給mysql

chown -R mysql:mysql /home/mysql

 

接下來,進入mysql的bin路徑執行命令初始化數據庫

./mysql_install_db --basedir=/home/mysql --datadir=/home/mysql/data --user=mysql

 

拷貝/bin路徑下的mysql.server到/etc/init.d路徑下

 

cp /home/mysql/bin/mysql.server /etc/init.d/mysql

 

 

配置mysql到環境變量,便於使用命令

 

vim /root/.bash_profile

 

 添加mysql路徑

 

PATH=$PATH:$HOME/bin:/home/mysql/bin

 

使用source使其生效

 

如今能夠啓動mysql試一下了

systemctl start mysql

報錯沒有 /var/lib/mysql(安裝的時候忘記截圖了)

那就本身建一個

mkdir /var/lib/mysql

 

權限

chown -R mysql:mysql /var/lib/mysql

 

  

再次啓動,成功了

 

設置開機啓動(因爲不是本機native服務沒法使用systemctl)

/sbin/chkconfig mysql on

 

而後我就遇到了一個大問題

登錄使用root用戶,可是密碼是啥呢?在默認安裝的時候(使用yum安裝)會在/var/log/下有日誌文件,裏面會有個臨時密碼用於登錄

可是在這裏,啓動的日誌文件怎麼也找不到(log文件在哪呢  /etc下都沒有my.cnf,?看到網上其餘內容有說須要在初始化前本身建立/var/mysql/log還有須要修改/etc/my.cnf 我這居然找不到

他還提示我要我輸入隨機密碼

可我根本就找不到隨機密碼在哪?

無奈我想到了一個辦法,假設我忘記了root的密碼,那確定是有解決辦法的,找了相關資料

首先停到mysql服務

systemctl stop mysql

 

而後切換到mysql的bin路徑下

cd /home/mysql/bin 

 

執行

./mysqld_safe --skip-grant-tables &

 

而後使用

mysql -p

 

進入mysql,這時仍是會提醒輸入password,只要回車就好,終於進到mysql了

而後在裏面執行

update mysql.user set authentication_string=password('臨時密碼') where user='root' and Host = 'localhost';

 

刷新

flush privileges;

 

exit退出,使用命令來登錄,輸入的密碼固然是剛纔設置的臨時密碼

mysql -uroot -p

 

可是如今還不可使用sql語句來操做數據庫,這至關於咱們剛使用臨時密碼登錄到數據庫,最早要作的就是修改密碼

ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密碼';

 

如今終於能夠操做mysql了,後續的受權遠程登錄等等就和前面默認安裝的mysql徹底相同了

[root@Server-002 bin]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.24

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

 


 

完......

相關文章
相關標籤/搜索