1、 把MySQL服務進程停掉:(整個過程請注意備份。把selinux關掉!)
2、 把/var/lib/mysql整個目錄移到/data/mysql
3、 找到my.cnf配置文件
為保證MySQL能夠正常工作,需要指明mysql.sock文件的產生位置。修改socket=/var/lib/mysql/mysql.sock一行中等號右邊的值為:/data/mysql/mysql.sock 。操作如下:
vi my.cnf (用vi工具編輯my.cnf文件,找到下列數據修改之)# The MySQL server[mysqld] port = 3306#socket = /var/lib/mysql/mysql.sock(原內容,為了更穩妥用“#”注釋此行)socket = /data/mysql/mysql.sock (加上此行)
4、 修改MySQL啟動腳本/etc/init.d/mysql
vim /etc/init.d/mysql
#datadir=/var/lib/mysql(注釋此行)datadir=/data/mysql (加上此行)
如果是CentOS還要改 /usr/bin/mysqld_safe 相關文件位置;
最後 做一個mysql.sock 鏈接:
ln -s /data/mysql/mysql.sock /var/lib/mysql/mysql.sock
5、7、重新啟動MySQL服務
/etc/init.d/mysqld start
或用reboot命令重啟Linux
如果工作正常移動就成功了,否則對照前面的7步再檢查一下。還要注意目錄的屬主和權限。
復制內容到剪貼板
Selinux盡量關掉
/etc/selinux/config
允許ubuntu下mysql遠程連接
第一步:
vim /etc/mysql/my.cnf
找到bind-address = 127.0.0.1
注釋掉這行,如:#bind-address = 127.0.0.1
或者改為: bind-address = 0.0.0.0
允許任意IP訪問;
或者自己指定一個IP地址。
重啟 MySQL:
sudo /etc/init.d/mysql restart
第二步:
授權用戶能進行遠程連接
grant all privileges on *.* to root@"%" identified by "password" with grant option;
flush privileges;
第一行命令解釋如下,*.*:第一個*代表數據庫名;第二個*代表表名。這裡的意思是所有數據庫裡的所有表都授權給用戶。root:授予root賬號。“%”:表示授權的用戶IP可以指定,這裡代表任意的IP地址都能訪問MySQL數據庫。“password”:分配賬號對應的密碼,這裡密碼自己替換成你的mysql root帳號密碼。
第二行命令是刷新權限信息,也即是讓我們所作的設置馬上生效。
注
MySql5.6操作時報錯:You must SET PASSWORD before executing this statement解決
mysql> SET PASSWORD = PASSWORD('123456');
Query OK, 0 rows affected (0.03 sec)
mysql> create database roger;
Query OK, 1 row affected (0.00 sec)
也就是用
mysql> SET PASSWORD = PASSWORD('123456');
這句話重新設置一次密碼!