被取消的命令MySQL 之前提供了一個(gè) rename database db_old to db_new 的命令來直接對(duì)數(shù)據(jù)庫改名,可能由于實(shí)現(xiàn)的功能不完備(比如,這條命令可能是一個(gè)超大的事務(wù),或者是由于之前的表很多還是 MyISAM 等),后來的版本直接取消了這條命令。更改數(shù)據(jù)庫名大致上有以下幾種方案:
創(chuàng)新互聯(lián)成立于2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目做網(wǎng)站、成都網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元龍安做網(wǎng)站,已為上家服務(wù),為龍安各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:13518219792
一、mysqldump 導(dǎo)入導(dǎo)出要說最簡單的方法,就是直接用 mysqldump 工具,在舊庫導(dǎo)出再往新庫導(dǎo)入(最原始、最慢、最容易想到)的方法:舊庫 yttdb_old 導(dǎo)出(包含的對(duì)象:表、視圖、觸發(fā)器、事件、存儲(chǔ)過程、存儲(chǔ)函數(shù))
二、改整庫的表名利用 MySQL 更改表名的方法來批量把舊庫的所有表依次遍歷,改名為新庫的表。這種方法比第一種要快很多倍,但是沒有第一步操作起來那么順滑,不能一步到位。比如,要把數(shù)據(jù)庫 yttdb_old 改名為 yttdb_new,如果數(shù)據(jù)庫 yttdb_old 里只有磁盤表,那很簡單,直接改名即可?;蛘邔憘€(gè)腳本來批量改,非常簡單。但是一般舊庫里不只有磁盤表,還包含其他各種對(duì)象。這時(shí)候可以先考慮把舊庫的各種對(duì)象導(dǎo)出來,完了在逐一改完表名后導(dǎo)進(jìn)去。
三、歷史方案其實(shí)在 MySQL 早期還有一種方法。假設(shè) MySQL 部署好了后,所有的 binlog 都有備份,并且二進(jìn)制日志格式還是 statement 的話,那就可以簡單搭建一臺(tái)從機(jī),讓它慢慢追主機(jī)到新的庫名,等確切要更改舊庫的時(shí)候,再直接晉升從機(jī)為主機(jī)即可。這里只需要從機(jī)配置一個(gè)參數(shù)來把舊庫指向?yàn)樾聨欤簉eplicate-rewrite-db=yttdb_old-yttdb_new不過這種局限性很大,不具備標(biāo)準(zhǔn)化,不推薦。
總結(jié)其實(shí)針對(duì) MySQL 本身改庫名,大致就這么幾種方法:
如果數(shù)據(jù)量小,推薦第一種;
數(shù)據(jù)量大,則推薦第二種;
數(shù)據(jù)量巨大,那就非 MySQL 本身能解決的了。
可通過部署第三方 ETL 工具,通過解析 MySQL 二進(jìn)制日志或其他的方式來把舊庫數(shù)據(jù)直接讀取到新庫達(dá)到改名的目的等等。
創(chuàng)建數(shù)據(jù)庫方法如下:
1、 CREATE DATABASE 數(shù)據(jù)庫名;
2、 GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON 數(shù)據(jù)庫名.* TO 數(shù)據(jù)庫名@localhost IDENTIFIED BY '密碼';
3、 SET PASSWORD FOR
'數(shù)據(jù)庫名'@'localhost' = OLD_PASSWORD('密碼');
這樣就能完成。
mysql show databases;
創(chuàng)建數(shù)據(jù)庫(假如數(shù)據(jù)庫名為 mydb)
mysql create database mydb;
刪除數(shù)據(jù)庫(假如數(shù)據(jù)庫名為 mydb)
mysql drop database accounts;
使用數(shù)據(jù)庫(假如使用數(shù)據(jù)庫 mydb)
mysql use mydb;
修改mysql數(shù)據(jù)庫的用戶名和密碼
更改密碼
1、mysql -u root -p
2、Enter password:***
3、mysqluse mysql;? #選擇數(shù)據(jù)庫
4、Database changed
5、mysql UPDATE user SET password=PASSWORD("新密碼") WHERE user='你的用戶名';
6、mysql FLUSH PRIVILEGES;
7、mysql quit;
更改用戶名:
1、mysql -u root -p
2、Enter password:***
3、mysql use mysql;? #選擇數(shù)據(jù)庫
4、Database changed
5、mysql update user?set?user="新用戶名"?where user="root"; #將用戶名為root的改為新用戶名
6、mysql flush privileges; #刷新權(quán)限
7、mysql?exit
擴(kuò)展資料:
mysql常用命令:
安裝(基于centos)
yum -y install mariadb mariadb-server #centos7版本
yum -y install mysql mysql-server #centos7以下版本
啟動(dòng)
service mysqld start #開啟 centos7以下版本
chkconfig mysqld on #設(shè)置開機(jī)自啟
OR
systemctl start mariadb #centos7
systemctl enable mariadb
設(shè)置密碼
1 、mysqladmin -u root -p123 password '1234' #修改root用戶密碼
2、進(jìn)入mysql庫修改user表
mysqluse mysql;
mysqlupdate user set password=password('你的密碼') where user='root';
mysqlflush privileges;
登錄
mysql #本地登錄,默認(rèn)用戶root,空密碼,用戶為root@127.0.0.1
mysql -uroot -p1234 #本地登錄,指定用戶名和密碼,用戶為root@127.0.0.1
mysql -uroot P端口號(hào) -h 192.168.31.95 -p密碼 #遠(yuǎn)程登錄,用戶為root@192.168.31.95
查看
ps aux |grep mysqld #查看進(jìn)程
netstat -an |grep 3306 #查看端口