1.安裝MySQL
1.1、安裝MySQL(若已安裝直接跳到步驟2)
sudo apt-get install mysql-server
1.2、安裝完成后登陸mysql
mysql -u root -p
1.3、登陸后查看版本
select version();

image
1.4、到此一切正常。
2.配置MySQL
2.1、用Navicat登陸MySQL。
(騰訊雲Ubuntu 16.04為例)
2.2、修改/etc/mysql/mysql.conf.d/mysqld.cnf
vim /etc/mysql/mysql.conf.d/mysqld.cnf
2.3、將bind-address = 127.0.0.1更改為bind-address = 0.0.0.0
2.4、保存退出
2.5、登陸MySQL
//先輸入密碼登陸 mysql -root -p //然后選擇數據庫 mysql>use mysql; //選擇root的賬戶host改為%,上面2.3中已改地址,這一步不確定是否必要 mysql> update user set host='%' where user='root'; //授權 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '填寫root的密碼' WITH GRANT OPTION; //更新權限 FLUSH PRIVILEGES; //查詢數據庫用戶 mysql>SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user; //退出mysql重啟mysql /etc/init.d/mysql restart

image
2.6、若想添加新用戶,不用root
//創建 test123用戶,設置密碼為 123456 CREATE USER test123 IDENTIFIED BY '123456'; //授權 GRANT ALL PRIVILEGES ON *.* TO 'test123'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION; //更新權限 FLUSH PRIVILEGES; //退出mysql重啟mysql /etc/init.d/mysql restart
2.7、騰訊雲開放連接權限,我這里是默認開放所有端口,因為方便並且沒什么重要東西就無所謂,建議只開放22,3306端口。

image
3.Navicat遠程連接

image
3.1、遠程連接mysql后,嘗試用sql語句插入帶自增主鍵屬性的表,在略過主鍵插入時,雖然成功插入數據,但是會提示: [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_s
解決辦法:
set @@global.sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
4.創建Java或JavaWeb項目訪問數據庫
4.1、下載mysql的jar包,點擊此跳轉百度雲下載
4.2、附上Java連接代碼(改IP賬戶密碼就行)
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class connectDB { public static void main(String[] args) { //聲明Connection對象 Connection con; //驅動程序名 String driver = "com.mysql.jdbc.Driver"; //URL指向要訪問的數據庫名mydata String url = "jdbc:mysql://填寫你的騰訊雲IP:3306/mysql"; //MySQL配置時的用戶名 String user = "root"; //MySQL配置時的密碼 String password = "填寫你的密碼"; //遍歷查詢結果集 try { //加載驅動程序 Class.forName(driver); //1.getConnection()方法,連接MySQL數據庫!! con = DriverManager.getConnection(url,user,password); if(!con.isClosed()) System.out.println("Succeeded connecting to the Database!"); //2.創建statement類對象,用來執行SQL語句!! Statement statement = con.createStatement(); //要執行的SQL語句 String sql = "select * from user"; //3.ResultSet類,用來存放獲取的結果集!! ResultSet rs = statement.executeQuery(sql); System.out.println("-----------------"); System.out.println("執行結果如下所示:"); System.out.println("-----------------"); String job = null; String id = null; while(rs.next()){ //獲取stuname這列數據 job = rs.getString("user"); //輸出結果 System.out.println(job); } rs.close(); con.close(); } catch(ClassNotFoundException e) { //數據庫驅動類異常處理 System.out.println("Sorry,can`t find the Driver!"); e.printStackTrace(); } catch(SQLException e) { //數據庫連接失敗異常處理 e.printStackTrace(); }catch (Exception e) { // TODO: handle exception e.printStackTrace(); }finally{ System.out.println("數據庫數據成功獲取!!"); } } }
運行截圖

image
4.3、附上JavaWeb連接代碼,寫在servlet一樣(改IP賬戶密碼就行)
<%