操作系統:Centos 7.1
mysql數據庫版本:mysql5.7.9
mysql官方網站:http://www.mysql.com
------------------------------------------
1、安裝新版mysql之前,我們需要將系統自帶的mariadb-lib卸載
[root@5201351 ~]# rpm -qa|grep mariadb mariadb-libs-5.5.41-2.el7_0.x86_64 [root@5201351 ~]# rpm -e mariadb-libs-5.5.41-2.el7_0.x86_64 --nodeps
2、到mysql的官網下載最新版mysql的rpm集合包:mysql-5.7.9-1.el7.x86_64.rpm-bundle.tar
3、上傳mysql-5.7.9-1.el7.x86_64.rpm-bundle.tar到linux服務器,並解壓tar包
4、其中最簡單的安裝mysql-server服務,只需要安裝如下4個軟件包即可,我們可以使用rpm -ivh命令進行安裝
mysql-community-common-5.7.9-1.el7.x86_64.rpm
mysql-community-libs-5.7.9-1.el7.x86_64.rpm --(依賴於common)
mysql-community-client-5.7.9-1.el7.x86_64.rpm --(依賴於libs)
mysql-community-server-5.7.9-1.el7.x86_64.rpm --(依賴於client、common)
5、接下來是初始化數據庫,我們使用如下幾條命令均可,效果都是一樣的
[root@5201351 ~]# mysql_install_db --datadir=/var/lib/mysql //必須指定datadir,執行後會生成~/.mysql_secret密碼文件 [root@5201351 ~]# mysqld --initialize //新版的推薦此方法,執行生會在/var/log/mysqld.log生成隨機密碼
6、更改mysql數據庫目錄的所屬用戶及其所屬組,然後啟動mysql數據庫
[root@5201351 ~]# chown mysql:mysql /var/lib/mysql -R [root@5201351 ~]# systemctl start mysqld.service //啟動mysql數據庫服務
7、根據第5步中的密碼登錄到mysql,更改root用戶的密碼,新版的mysql在第一次登錄後更改密碼前是不能執行任何命令的
[root@5201351 ~]# mysql -uroot -p')j#)=uRig4yJ' mysql> set password=password('www.cnblogs.com/5201351');
8、最後我們還可以根據實際情況創建用戶,及作權限分配
mysql> create user 'root'@'192.168.100.2' identified by 'QQ5201351'; mysql> GRANT ALL PRIVILEGES ON dbname.* to 'root'@'192.168.100.2'; mysql> flush privileges
==============================================
最後需要特別提醒注意的一點是,新版的mysql數據庫下的user表中已經沒有Password字段了,
而是將加密後的用戶密碼存儲於authentication_string字段
尊重別人的勞動成果 轉載請務必注明出處:http://www.cnblogs.com/5201351/p/4912614.html
http://www.cnblogs.com/5201351/p/4912614.html
安裝完mysql 之後,登陸以後,不管運行任何命令,總是提示這個
step 1: SET PASSWORD = PASSWORD('your new password');
或 update user set authentication_string=password("your_new_password") where user="root";
step 2: ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
step 3: flush privileges;
完成以上三步退出再登,使用新設置的密碼就行了,以上除了紅色的自己修改成新密碼外,其他原樣輸入即可
參考1: https://dev.mysql.com/doc/refman/5.6/en/alter-user.html
參考2: http://dev.mysql.com/doc/refman/5.7/en/password-expiration-policy.html
參考3: http://stackoverflow.com/questions/33467337/reset-mysql-root-password-using-alter-user-statement-after-install-on-mac
http://www.cnblogs.com/debmzhang/p/5013540.html
CentOS 7繼承了RHEL 7的新的特性,例如強大的systemctl,而systemctl的使用也使得以往系統服務的/etc/init.d的啟動腳本的方式就此改變,也大幅提高了系統服務的運行效率。但服務的配置和以往也發生了極大的不同,說實在的,變的簡單而易用了許多。
下面我們以利用forever來實現Node.js項目自啟動為例,初探CentOS 7的systemctl。
前提:Node.js環境已配置成功,forever包安裝成功,有一個能跑的Node.js程序。
CentOS 7的服務systemctl腳本存放在:/usr/lib/systemd/,有系統(system)和用戶(user)之分,像需要開機不登陸就能運行的程序,還是存在系統服務裡吧,即:/usr/lib/systemd/system目錄下
每一個服務以.service結尾,一般會分為3部分:[Unit]、[Service]和[Install],我寫的這個服務用於開機運行Node.js項目,具體內容如下:
[Unit]
Description=xiyoulibapi
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/node.js/pid
ExecStart=/usr/local/bin/forever start /node.js/xiyoulib/bin/www
ExecReload=/usr/local/bin/forever restart /node.js/xiyoulib/bin/www
ExecStop=/usr/local/bin/forever stop /node.js/xiyoulib/bin/www
PrivateTmp=true
[Install]
WantedBy=multi-user.target
[Unit]部分主要是對這個服務的說明,內容包括Description和After,Description用於描述服務,After用於描述服務類別
[Service]部分是服務的關鍵,是服務的一些具體運行參數的設置,這裡Type=forking是後台運行的形式,PIDFile為存放PID的文件路徑,ExecStart為服務的具體運行命令,ExecReload為重啟命令,ExecStop為停止命令,PrivateTmp=True表示給服務分配獨立的臨時空間,注意:[Service]部分的啟動、重啟、停止命令全部要求使用絕對路徑,使用相對路徑則會報錯!
[Install]部分是服務安裝的相關設置,可設置為多用戶的
服務腳本按照上面編寫完成後,以754的權限保存在/usr/lib/systemd/system目錄下,這時就可以利用systemctl進行配置了
首先,使用systemctl start [服務名(也是文件名)]可測試服務是否可以成功運行,如果不能運行則可以使用systemctl status [服務名(也是文件名)]查看錯誤信息和其他服務信息,然後根據報錯進行修改,直到可以start,如果不放心還可以測試restart和stop命令。
接著,只要使用systemctl enable xxxxx就可以將所編寫的服務添加至開機啟動即可。
我的腳本編寫方法參照了nginx的編寫方法,也可以根據其他功能類似的程序。
這樣看來,雖然systemctl比較陌生,但是其實比init.d那種方式簡單不少,而且使用簡單,systemctl能簡化的操作還有很多,現在也有不少的資料,看來RHEL/CentOS比其他的Linux發行版還是比較先進的,此次更新也終於捨棄了Linux 2.6內核,無論是速度還是穩定性都提升不少。
http://www.linuxidc.com/Linux/2014-07/104487.htm