初始化mysql資料庫

來源:互聯網
上載者:User

標籤:mysql 初始化

無論你是編譯安裝,二進位安裝,還是yum,rpm,裝完mysql都是要初始化才能用.

下面來介紹下初始化安裝mysql,安裝前要準備好my.cnf檔案噢~!怎麼配置my.cnf,可以看我另一篇文章.

不過要注意的是,發行版和版本號碼的不同,有些參數會不同或不可用,會導致初始化失敗,這時需要去初始化的資料目錄查看mysql.err,看看那個參數有問題,然後屏蔽了,重新再初始化一次.

-前置步驟,已做就可以不用理會

mkdir -p /data/mysql/datagroupadd mysqluseradd -g mysql -s /sbin/nologin mysqlchown -R mysql.mysql /data/mysql/datamkdir /data/mysql/tmpchown -R mysql.mysql /data/mysql/tmp/

-注意:操作前要確保沒有其他mysql發行版幹擾,特別是yum安裝的和rpm安裝,

rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64rpm -e --nodeps mysql.x86_64

額外說明:--nodeps是不檢查依賴,不要害怕,即使有依賴你自己的安裝包都肯定有,做軟串連就好了

ln -s /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib64/libmysqlclient.so.18

-------------------------這條分割線上面的無論是什麼版本都要做噢~!--------------------------

-5.6及之前的版本初始化步驟(包括5.6)

確保mysql進程已停

service mysql stop

確保初始化的資料目錄沒有資料

rm -rf /data/mysql/data*

執行初始化指令碼,添加參數,切記要先編輯好my.cnf

/usr/local/mysql/scripts/mysql_install_db --defaults-file=/usr/local/mysql/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/data --user=mysql > /dev/null 2>&1

啟動mysql

service mysql start

初始化密碼

/usr/local/mysql/bin/mysqladmin -u root password ‘新密碼‘

#初始化完成,嘗試登陸

/usr/local/services/mysql/bin/mysql -uroot  -p‘新密碼‘

------------------------------我是分割線---------------------------------

-5.7之後用新方式

確保mysql進程已停

service mysql stop

確保初始化的資料目錄沒有資料

rm -rf /data/mysql/data*

執行初始化命令,指定defaults-file且並必須放到最前面,切記要先編輯好my.cnf

mysqld --defaults-file=/usr/local/mysql/my.cnf --initialize

查看初始化後的密碼(密碼資訊在最後),5.7的初始化比較特別,會自動產生密碼,不用這個密碼你就不能登入,除非你進安全模式破密碼,或者把參數--initialize換成--initialize-insecure,初始化後可以免密碼登入.

sed -n ‘/password/p‘ /data/mysql/data/mysql.err.....A temporary password is generated for [email protected]: GVedtgXDZ1-,

更改一下資料目錄的屬主許可權,初始化並沒有改這個屬主問題,不改的話會啟動不了

chown -R mysql:mysql /data/mysql/data/

啟動mysql

service mysql start

密碼還要初始化,雖然初始化資料庫的時候已經有密碼,可以直接登入,但是初始化還沒真正完成,不然會報錯,提示你改密碼

mysql -uroot -p‘GVedtgXDZ1-,‘

還必須是下面這樣改,不然改不了

mysql> alter user ‘root‘@‘localhost‘ identified by ‘123‘;mysql> set password for ‘root‘@‘localhost‘=password(‘123‘);

這時候才算初始化完成,嘗試你設定的新密碼登入吧

mysql -uroot -p‘123‘

-擴充閱讀:mysql 5.7增加了兩個欄位password_last_changed、password_lifetime來完善安全性原則,可以設定參數default_password_lifetime來延長使用到期日

ALTER USER ‘root‘@localhost‘ PASSWORD EXPIRE INTERVAL 90 DAYS;ALTER USER ‘root‘@‘localhost‘ PASSWORD EXPIRE NEVER;ALTER USER ‘root‘@‘localhost‘ PASSWORD EXPIRE DEFAULT;

---------------------------------我也是分割線-----------------------------------

初始化完了就真的完了嗎?最好還是做個安全強化吧.

安全強化mysql資料庫(初始化後做最佳)

刪除任何無關的管理使用者和空密碼的管理使用者,有需求再開

delete from mysql.user where user="root" and host!="localhost";delete from mysql.user where user="root" and password="";flush privileges;

刪除test庫,因為這個庫預設是所有人都有許可權讀寫,存在漏洞

drop database test;

刪除存放資料庫的表資訊,因為還沒有資料庫資訊。

delete from mysql.db;

其實5.7對安全做得比較好,上面這些做不做相差並不大,不過多做一步也更安全一些.

初始化mysql資料庫

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.