基於在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>
完......