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