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