環境: CentOSmysql
MySQL版本:5.6.30spring
開發環境:jdk8,spring+MyBatis+jtasql
報錯緣由:作添加Date類型操做是,出現時區問題,致使存入數據庫的時間與當北京時間相差8小時,後來採用網上解決方法:數據庫
以管理員身份登錄mysql 執行如下語句安全
mysql > SET time_zone = '+8:00'; # 此爲北京時,咱們所在東8區bash
mysql> flush privileges; # 當即生效less
在重啓mysql時,啓動失敗,錯誤信息爲pid未找到。this
---------------------------------------------------------------------------解決方法:.net
在虛擬機中安裝了CentOS時安裝了Nami版的Rendmine,沒有設置MySQL自動啓動,手動啓動時出現 Please read "Security" section of the manual to find out how to run mysqld as root!錯誤,根據提示,查了 /opt/redmine-1.2.1-1/mysql/docs/mysql.info的Security部分,發現是由於MySQL爲了安全,不但願root用戶直接啓動mysql。下面是文檔中的原文:server
*Never run the MySQL server as the Unix `root' user. This is
extremely dangerous, because any user with the `FILE' privilege is
able to cause the server to create files as `root' (for example,
`~root/.bashrc'). To prevent this, *Note `mysqld': mysqld. refuses
to run as `root' unless that is specified explicitly using the
`--user=root' option.
永遠不要使用root賬號啓動MySQL Server。這樣作很微笑,由於擁有FILE'權限的用戶會使得MySQL Server使用root賬戶建立文件(好比,~root/.bashrc),爲了防止相似的事情發生,mysqld默認拒絕用戶使用root賬戶啓動,但root用戶能夠經過在命令後面加上"--user=root"選項來強行啓動mysqld。
*Note `mysqld': mysqld. can (and should) be run as an ordinary,
unprivileged user instead. You can create a separate Unix account
named `mysql' to make everything even more secure. Use this
account only for administering MySQL. To start *Note `mysqld':
mysqld. as a different Unix user, add a `user' option that
specifies the user name in the `[mysqld]' group of the `my.cnf'
option file where you specify server options. For example:
[mysqld]
user=mysql
與使用root用戶啓動mysqld相比,更好的方法是使用一個普通的、沒有高級權限的用戶賬戶容許mysqld,例如建立一個名爲mysql的用戶賬戶來專門管理MySQL。使用其賬啓
動MySQL的方法是在mysqld命令後面加上一個用戶選項,這個用戶屬於mysqld用戶組而且位於my.cnf配置文件中。例如在建立mysql賬戶後,能夠將下面的內容添加到my.cnf文
件中:
[mysqld]
user=mysql
This causes the server to start as the designated user whether you
start it manually or by using *Note `mysqld_safe': mysqld-safe. or
*Note `mysql.server': mysql-server. For more details, see *Note
changing-mysql-user::.
這個選項可使你使用指定的用戶賬戶啓動MySQL,不管是mysqld_safe仍是mysql.server命令,均可以使用。
Running *Note `mysqld': mysqld. as a Unix user other than `root'
does not mean that you need to change the `root' user name in the
`user' table. _User names for MySQL accounts have nothing to do
with user names for Unix accounts_.
不要使用Unix的root用戶啓動並不意味着你要修改MySQL中的user表中的root用戶名,由於Unix的root賬戶和MySQL的root賬戶沒有什麼關係。