本文目錄一覽:
- 1、如何修改MySQL數據庫名稱
- 2、怎樣在mysql裡面修改數據庫名稱?
- 3、mysql數據庫中的collation如何修改?
- 4、mysql如何修改數據庫目錄
- 5、怎麼修改mysql數據庫表中內容
如何修改MySQL數據庫名稱
修改MySQL數據庫名稱的方法如下:
1.語句修改法:
RENAME DATABASE db_name TO new_db_name
這個語法在mysql 5.1.7中被添加進來,到了5.1.23又去掉了。
2.如果所有表都是MyISAM類型的話,可以改文件夾的名字
把data目錄中的db_name目錄重命名為new_db_name
3.重命名所有的表
代碼如下:
4. mysqldump導出數據再導入
代碼如下:
5.使用shell腳本重命名所有的表
代碼如下:
怎樣在mysql裡面修改數據庫名稱?
被取消的命令MySQL 之前提供了一個 rename database db_old to db_new 的命令來直接對數據庫改名,可能由於實現的功能不完備(比如,這條命令可能是一個超大的事務,或者是由於之前的表很多還是 MyISAM 等),後來的版本直接取消了這條命令。更改數據庫名大致上有以下幾種方案:
一、mysqldump 導入導出要說最簡單的方法,就是直接用 mysqldump 工具,在舊庫導出再往新庫導入(最原始、最慢、最容易想到)的方法:舊庫 yttdb_old 導出(包含的對象:表、視圖、觸發器、事件、存儲過程、存儲函數)
二、改整庫的表名利用 MySQL 更改表名的方法來批量把舊庫的所有表依次遍歷,改名為新庫的表。這種方法比第一種要快很多倍,但是沒有第一步操作起來那麼順滑,不能一步到位。比如,要把數據庫 yttdb_old 改名為 yttdb_new,如果數據庫 yttdb_old 里只有磁盤表,那很簡單,直接改名即可。或者寫個腳本來批量改,非常簡單。但是一般舊庫里不只有磁盤表,還包含其他各種對象。這時候可以先考慮把舊庫的各種對象導出來,完了在逐一改完表名後導進去。
三、歷史方案其實在 MySQL 早期還有一種方法。假設 MySQL 部署好了後,所有的 binlog 都有備份,並且二進制日誌格式還是 statement 的話,那就可以簡單搭建一台從機,讓它慢慢追主機到新的庫名,等確切要更改舊庫的時候,再直接晉陞從機為主機即可。這裡只需要從機配置一個參數來把舊庫指向為新庫:replicate-rewrite-db=yttdb_old-yttdb_new不過這種局限性很大,不具備標準化,不推薦。
總結其實針對 MySQL 本身改庫名,大致就這麼幾種方法:
如果數據量小,推薦第一種;
數據量大,則推薦第二種;
數據量巨大,那就非 MySQL 本身能解決的了。
可通過部署第三方 ETL 工具,通過解析 MySQL 二進制日誌或其他的方式來把舊庫數據直接讀取到新庫達到改名的目的等等。
mysql數據庫中的collation如何修改?
mysql中怎麼修改collation
【問題報錯】
在數據庫插入數據時,varchar 類型的字段插入中文數據時報錯。
報錯原文:
【原因分析】
通過 show full columns from user_bean;語句查看字段的collation屬性,發現字段的collation屬性值是 latin1_swedish_ci ,說明字段默認為英語。未對漢語進行設置,所以當輸入漢語時,mysql會報錯為“字符串的值不正確”。
【解決方法】
1、編輯mysql的配置文件 /etc/my.cnf,vi /etc/my.cnf
在 [mysqld] 下面加入兩行補充
2、重啟Mysql服務 systemctl restart mysqld
向數據庫插入含中文的數據,成功!
注意:上面步驟可以解決以後創建表時字段的collation屬性的問題,但前面已經創建的表字段的collation屬性值並不會發生變化。
如果要改變之前已經創建好的表,怎麼辦?
方法1:對原來的表進行修改,可以通過類似語句
alter table user_bean change address address varchar(255) character set utf8 collate utf8_general_ci not null;
方法2:刪除原來的表,重新再建。
【命令總結】
mysql如何修改數據庫目錄
MySQL默認的數據文件存儲目錄為/var/lib/mysql。假如要把MySQL目錄移到/home/data下需要進行下面幾步:
1、home目錄下建立data目錄
cd /home
mkdir data
2、把MySQL服務進程停掉
mysqladmin -u root -p shutdown
3、把/var/lib/mysql整個目錄移到/home/data
mv /var/lib/mysql /home/data/
這樣就把MySQL的數據文件移動到了/home/data/mysql下。
4、找到my.cnf配置文件
如果/etc/目錄下沒有my.cnf配置文件,請到/usr/share/mysql/下找到*.cnf文件,拷貝其中一個到/etc/並改名為my.cnf)中。命令如下:
[root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
5、編輯MySQL的配置文件/etc/my.cnf
為保證MySQL能夠正常工作,需要指明mysql.sock文件的產生位置。修改socket=/var/lib/mysql/mysql.sock一行中等號右邊的值為:/home/mysql/mysql.sock。操作如下:
vi my.cnf (用vi工具編輯my.cnf文件,找到下列數據修改之)
# The MySQL server
[mysqld]
port = 3306
#socket = /var/lib/mysql/mysql.sock(原內容,為了更穩妥用“#”注釋此行)
socket = /home/data/mysql/mysql.sock (加上此行)
6、修改MySQL啟動腳本/etc/init.d/mysql
最後,需要修改MySQL啟動腳本/etc/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等號右邊的路徑改成你現在的實際存放路徑:home/data/mysql。
[root@test1 etc]# vi /etc/init.d/mysql
#datadir=/var/lib/mysql(注釋此行)
datadir=/home/data/mysql (加上此行)
7、重新啟動MySQL服務
/etc/init.d/mysql start
或用reboot命令重啟Linux
如果工作正常移動就成功了,否則對照前面的7步再檢查一下。
還要注意目錄的屬主和權限。
怎麼修改mysql數據庫表中內容
以windows為例
方法一(假設mysql在d:\mysql目錄下)
1、用系統管理員登陸windows系統。
2、停止MySQL的服務。
3、運行cmd進入dos命令窗口,然後進入MySQL的安裝目錄,比如安裝目錄是d:\mysql,進入d:\mysql\bin (如果是c:\Program Files\mysql目錄,目錄包含空格,使用cd “c:\Program Files\mysql”進入mysql目錄)
4、跳過權限檢查啟動MySQL(關鍵的一步)
d:\mysql\binmysqld-nt –skip-grant-tables(會佔用一個dos控制台窗口,不能關閉)
5、重新打開一個dos控制台窗口,進入d:\mysql\bin目錄,設置root的新密碼
d:\mysql\binmysqladmin -u root flush-privileges password 【新密碼】
(注意:這條命令如果重複執行,可能需要關閉4的窗口並重新運行)
d:\mysql\binmysqladmin -u root -p shutdown(或直接關閉第一個dos控制台窗口)
將【新密碼】替換為你要用的root的密碼,第二個命令可能會提示你輸入新密碼,重複第一個命令輸入的密碼。
6、關閉MySQL的控制台窗口,用正常模式啟動Mysql
7、你可以用新的密碼鏈接到Mysql了。
方法二
1、停止mysql服務
2、找到mysql數據的data目錄,將另外一個mysql的data目錄下的mysql目錄覆蓋過來(如果知道root密碼)
(操作之前先備份mysql\data\mysql目錄的所有文件)
這種方法缺點:覆蓋掉其他的用戶,mysql的版本需相同
3、重新啟動mysql服務
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/160478.html