mysql数据记录更新版本问题_MySQL版本升级遇到的问题小结
今天進行了項目組的mysql版本升級,過程中遇到了一些問題,做一些記錄,和大家共享。
到MySQL官網(wǎng)下載MySQL Community版,MySQL分為商業(yè)版(Enterprise)和社區(qū)版(Community),商業(yè)版是要收費的,社區(qū)版是免費的。
MySQL提供兩種類型的安裝包,一種是解壓版(Compressed Tar)的,一種是安裝版(DMG Archive)的。并且MySQL的安裝包是有32位和64位區(qū)分的,并且有mac版和Windows版的區(qū)分,下載的時候需要留意。我之前裝的是安裝版的,但是今天升級下來之后,推薦下載使用解壓版本的,因為解壓版本的可以在一臺機器上安裝多個版本。而安裝版的話是不可以的。并且解壓版的可以把層級結(jié)構(gòu)調(diào)整好之后,再有更新的時候,直接解壓就可以了,解壓之后給新版的注冊服務(wù)修改端口號就可以了。
我要升級到的版本是5.6,這個版本的新特性可以參考官網(wǎng),和一些文章:
對我們直接有用的就是timestamp,可以在需要記錄時間戳的地方使用,比較方便,但是在舊版本中一張表中只能有一個timestamp生效,要想在多種情況下使用的話,就需要使用觸發(fā)器來實現(xiàn)(比如在新建的時候需要一個字段來記錄新建時間,而更新的時候也需要一個字段來記錄更新時間),5.6之后的版本中在一張表中可以讓多種情況下timestamp都生效。
1. 在mac環(huán)境中進入MySQL 命令行模式:
先進入位置再登錄mysql數(shù)據(jù)庫:
cd /usr/local/mysql/lib
mysql -u'username' -p'password';
如果是連接到另外的機器上,則需要加入一個參數(shù)-h機器IP
可以直接把命令拼在一起,用一條命令來實現(xiàn):
/usr/local/mysql/bin/mysql -u'username' -p'password';
2. mysql的環(huán)境變量設(shè)置。
1).終端中執(zhí)行 vi ~/.bash_profile
2).點擊字母i 進入編輯模式
3). 在末尾添加以下兩行:添加完后按esc鍵, 輸入 :wq 即保存退出
alias mysql=/usr/local/mysql/bin/mysql
alias mysqladmin=/usr/local/mysql/bin/mysqladmin
4). 登錄mysql數(shù)據(jù)庫的命令:mysql -u'username' -p'password';
登錄MySQL客戶端后,查看所有用戶及擁有權(quán)限:
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
3.1 創(chuàng)建用戶:
CREATE USER TEST1 IDENTIFIED BY 'TEST1';
3.2 分配權(quán)限:格式:grant權(quán)限on數(shù)據(jù)庫.* to用戶名@登錄主機identified by "密碼"
3.2.1 如果希望該用戶能夠在任何機器上登陸mysql,則將localhost改為"%"。
3.2.2 如果你不想user1有密碼,可以再打一個命令將密碼去掉。
grant select,insert,update,delete on mydb.* to user1@localhost identified by "";
3.2.3 全部數(shù)據(jù)庫的權(quán)限:
GRANT?ALL?PRIVILEGES?ON?*.* TO?'username'@'localhost'?IDENTIFIED BY?'password';
3.2.4 某個特定數(shù)據(jù)庫(wordpress)的權(quán)限:
GRANT?ALL?PRIVILEGES?ON?wordpress.* TO?'username'@'localhost'?IDENTIFIED BY?'password';
3.2.5 指定該用戶只能執(zhí)行 select 和 update 命令:
GRANT?SELECT, UPDATE?ON?wordpress.* TO?'username'@'localhost'?IDENTIFIED BY?'password';
3.2.6 撤銷權(quán)限:
EVOKE ALL?PRIVILEGES?ON?*.* FROM?'username'@'localhost';
每當調(diào)整權(quán)限后,通常需要執(zhí)行以下語句刷新權(quán)限:FLUSH PRIVILEGES;
3.2.7 刪除創(chuàng)建的用戶:
DROP?USER?username@localhost;
不管是授權(quán),還是撤銷授權(quán),都要指定響應的host(即 @ 符號后面的內(nèi)容),因為以上命令實際上都是在操作mysql 數(shù)據(jù)庫中的user表。
3.3 顯示數(shù)據(jù)表的結(jié)構(gòu): describe表名;
3.4 刪庫:drop database庫名;
3.5 清空表:TRUNCATE 表名;
3.6 導出數(shù)據(jù):
mysqldump --opt test > mysql.test將數(shù)據(jù)庫test數(shù)據(jù)庫導出到mysql.test文件,后者是一個文本文件
mysqldump -u root -p123456 --databases dbname > mysql.dbname
就是把數(shù)據(jù)庫dbname導出到文件mysql.dbname中。
3.7 導入數(shù)據(jù):
mysqlimport -u root -p123456 < mysql.dbname
3.8 將文本數(shù)據(jù)導入數(shù)據(jù)庫:
文本數(shù)據(jù)的字段數(shù)據(jù)之間用tab鍵隔開。
use test;
load data local infile "文件名" into table表名;
4. 命令行操作MySQL遇到的報錯信息以及解決辦法:
4.1
ERROR 1227 (42000): Access denied; you need (at least one of) the CREATE USER privilege(s) for this operation;
解決方法:這里的報錯是因為登錄MySQL的時候只是用了mysql,沒有指定用戶名和密碼導致的。這里應該是指當前登陸者沒有這個創(chuàng)建用戶的權(quán)限。
4.2
-bash: mysqld_safe: command not found(為什么進入到 /usr/local/mysql/bin/下之后,一些東西命名存在但是不能執(zhí)行?)
解決方法:如果進入到目錄都不行的時候,需要在命令前面加上sudo ./ 意思就是以管理員的權(quán)限運行當前目錄下的某個命令
4.3
總結(jié)
以上是生活随笔為你收集整理的mysql数据记录更新版本问题_MySQL版本升级遇到的问题小结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql主从克隆服务器_mysql主从
- 下一篇: mysql视频教程siki_siki老师