1. 程式人生 > >Ubuntu 16 MariaDB 開啟遠端訪問

Ubuntu 16 MariaDB 開啟遠端訪問

前言:
在Ubuntu16上安裝MariaDB後, 只能在本地訪問, 不能在windows中通過navicat遠端訪問, 一直提示錯誤:

Can't connect to MySQL server on 192.168.x.xxx (Unknown error: 10061)

本文記錄下解決過程。

解決思路

1. 確定Mysql服務已開啟

$ service mysql status

// 服務已開啟 Active: active
● mysql.service - LSB: Start and stop the mysql database server daemon
   Loaded: loaded (/etc/init.d/mysql; bad; vendor preset: enabled)
   Active: active (running) since Thu 2017
-09-28 15:39:41 ULAST; 25min ago ... // 服務未啟動狀態 Active: inactive ● mysql.service - LSB: Start and stop the mysql database server daemon Loaded: loaded (/etc/init.d/mysql; bad; vendor preset: enabled) Active: inactive (dead) since Thu 2017-09-28 16:06:52 ULAST; 6s ago ...

開啟mysql服務

$ service mysql start

==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to start 'mysql.service'. Authenticating as: nginx,,, (nginx) Password: ==== AUTHENTICATION COMPLETE ===

2. 在mysql.user表中新增新使用者(與linux使用者無關), 配置好相關許可權

進入 Maria 資料庫, 先看看已有使用者以及資料庫有哪些

// 使用管理員進入資料庫
$ sudo mysql -uroot -p

// 檢視當前已存在使用者
MariaDB [(none)]> select host,user from mysql.user;
+-----------+
-------+ | host | user | +-----------+-------+ | % | admin | | % | root | | localhost | root | +-----------+-------+ // 檢視已有資料庫 MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | my_test | | mysql | | performance_schema | +--------------------+

接下來在mysql.user表中新增一個新使用者, 示例新增一條dbadmin使用者, 建立新的資料庫my_db, 併為dbadmin配置許可權: 擁有my_db庫所有許可權(一般來說dba不會把root開放給我們).

// 建立資料庫, 這裡作為演示, 簡單建立
MariaDB [(none)]> create database `my_db`;
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| my_db              |
| my_test            |
| mysql              |
| performance_schema |
+--------------------+

// 建立新使用者
// dbadmin: 新使用者登入名      mysql.user.user
// sqlpass: 新使用者登入密碼    mysql.user.password
// % :      無限制連結地址    mysql.user.host
MariaDB [(none)]> create user 'dbadmin'@'%' identified by 'sqlpass';
MariaDB [(none)]> select host,user from mysql.user where user='dbadmin';
+------+---------+
| host | user    |
+------+---------+
| %    | dbadmin |
+------+---------+

// 為使用者分配許可權
// 完全控制 my_db
// my_db.*: my_db庫中的所有表
MariaDB [(none)]> GRANT ALL PRIVILEGES ON my_db.* TO 'dbadmin'@'%';

// 許可權分配完成後一定要記得重新整理
// 否則不會生效
MariaDB [(none)]> flush privileges;

到這如果防火牆和Maria配置沒問題的話, 已經可以遠端訪問了. 如果還是不能遠端訪問, 繼續往下看.

3.檢查防火牆配置

兩種解決方案: a 關閉防火牆; b. 為3306放行

// 關閉防火牆
# ufw disable

# ufw status
Status: inactive

// 開啟防火牆
// 為3306放行
# sudo ufw allow 3306
# ufw enable

# ufw status
Status: active
To                         Action      From
--                         ------      ----
3306                       ALLOW       Anywhere                  
3306 (v6)                  ALLOW       Anywhere (v6) 

4. 檢查 .conf 配置, 修改配置檔案後要重啟生效

配置檔案位置與Mysql略有不同.

  • MySQL配置檔案位置: /etc/mysql/mysql.conf.d/mysqld.cnf
  • MariaDB配置檔案位置: /etc/mysql/mariadb.conf.d/50-server.conf
# cd /etc/mysql/mariadb.conf.d
# ll
total 24
drwxr-xr-x 2 root root 4096 Sep 28 15:38 ./
drwxr-xr-x 4 root root 4096 Sep 27 19:08 ../
-rw-r--r-- 1 root root  495 Jul  1 05:26 50-client.cnf
-rw-r--r-- 1 root root  336 Jul  1 05:26 50-mysql-clients.cnf
-rw-r--r-- 1 root root  321 Jul  1 05:26 50-mysqld_safe.cnf
-rw-r--r-- 1 root root 3492 Sep 28 15:38 50-server.cnf

修改 50-server.conf 檔案 (vim 顯示行號 : set number/nonumber), 找到 bind-address = 127.0.0.1這一行, 並註釋掉(前面插入井號:#)

# vim 50-server.conf
 22 datadir         = /var/lib/mysql
 23 tmpdir          = /tmp
 24 lc-messages-dir = /usr/share/mysql
 25 skip-external-locking
 26 
 27 # Instead of skip-networking the default is now to listen only on
 28 # localhost which is more compatible and is not less secure.
 29 # bind-address            = 127.0.0.1
 30 
 31 #
 32 # * Fine Tuning
 33 #
 34 key_buffer_size         = 16M

如有錯誤, 歡迎指正探討.

相關推薦

Ubuntu 16 MariaDB 開啟遠端訪問

前言: 在Ubuntu16上安裝MariaDB後, 只能在本地訪問, 不能在windows中通過navicat遠端訪問, 一直提示錯誤: Can't connect to MySQL server on 192.168.x.xxx (Unknown

Ubuntu 環境下的mysql 遠端訪問,redis 遠端訪問和設定密碼 ,mongo 安裝 ,設定使用者密碼,開啟遠端訪問

MySQL遠端訪問 1.編輯mysql配置檔案,把其中bind-address = 127.0.0.1註釋了 vi /etc/mysql/mysql.conf.d/mysqld.cnf 2.使用root進入mysql命令列,執行如下2個命令,示例中mysql的root賬號密碼:root grant

Linux 關於安裝rabbitmq以及開啟遠端訪問許可權步驟

時光飛逝,距離上次寫部落格居然已經兩個月之久,近期因為專案進度緊,而一直沒有抽出時間來進行總結,本人會在近期將專案中所涉及到的技術以及一些操作進行總結並更新到部落格中,今天我們就來聊聊linux下安裝rabbitmq的安裝步驟。 本篇部落格主要以安裝步驟為主,所以並不會涉及到太

Centos7教程: MySQL開啟遠端訪問

1.安裝MySQL5.6--(MySQL安裝教程) 2. 使用iptables防火牆; 關閉firewall:  systemctl stop firewalld.service 若沒安裝iptables:  檢視是否安裝iptables: sy

mysql給root開啟遠端訪問許可權

MySql-Server 出於安全方面考慮預設只允許本機(localhost, 127.0.0.1)來連線訪問. !!!所以必須給root修改可以遠端訪問的許可權          1.在連線伺服器後,操作mysql系統資料庫    

Ubuntu 16.04開啟SSH服務

art con open ssh服務 grep 服務啟動 bubuko ubuntu Opens 先安裝: sudo apt-get install openssh-server 然後啟動: sudo service ssh start 查看服務啟動的狀態: su

mongodb 開啟遠端訪問

1、找到mogodb的安裝 安裝目錄(bin資料夾下n) 2、執行命令(mongod --dbpath db目錄   --bind_ip_all)          &nb

jupyter開啟遠端訪問以及遇到No address associated with hostname問題

jupyter安裝好之後預設只能本地訪問,要想開啟遠端訪問,有兩種方法 1、第一種,生成配置檔案,修改內容。 參考連結: https://www.cnblogs.com/yangxiaolan/p/5778305.html 2、第二種,手動建立一個配置檔案。 # vim conf

Ubuntu 下Mysql server 遠端訪問

1. comment  /etc/mysql/mysql.conf.d/mysqld.cnf    bind-address  =127.0.0.11 2. execute sql grant all on *.* to [email pro

阿里雲ECS伺服器Ubuntu安裝MySQL並遠端訪問

root賬戶登入伺服器Ubuntu16.04 apt-get update apt-get install mysql-server mysql-client; 安裝時會讓你設定root密碼,輸入2次。 本地連線mysql測試: mysql -uroot -p****(****是安裝時你設定的roo

Linux 安裝redis 開啟遠端訪問、密碼驗證等

1、安裝redis CentOS下: 下載redis wget http://download.redis.io/releases/redis-4.0.10.tar.gz 解壓redis tar zx

Ubuntu設定MySQL允許遠端訪問

1.註釋bind-address = 127.0.0.1。 程式碼如下: > sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 將bind-address = 127.0.0.1註釋掉(即在行首加#),如下: 程式碼如下: # In

資料庫工作筆記008---mysql開啟遠端訪問許可權

 1.  //登入資料庫   mysql -u root -pvmwaremysql>use mysql;   //%為所有ip都可以遠端訪問   mysql>update user set host = '%' where user = 'root';

docker開啟遠端訪問漏洞

伺服器A與伺服器B免密登陸: 把伺服器A中的公鑰id_rsa.pub追加到伺服器B中的authorized_keys中,這樣就能實現伺服器A免密登陸伺服器B。 預設情況下Docker的守護程序會生成一個socket(/var/run/docker.sock)程序通訊檔案,

Docker開啟遠端訪問(非認證模式)

CentOS 7 版本 # uname -r 3.10.0-327.el7.x86_64 # cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) docker 版本 # docker --ver

Redis安裝開啟遠端訪問

Redis的安裝與開啟遠端訪問 本機環境:centos7,Redis-4.0.11 去Redis的官網下載安裝包 點我下載Redis 我這裡下載的是穩定版的 [[email protected]]# wget http://download.redis

阿里雲輕量應用伺服器mysql開啟遠端訪問

1.進入控制檯,點選防火牆按鈕 2.新增規則 3.新增mysql,埠號3306 4.登入mysql mysql -u root -p mysql 5.設定root使用者遠端連線的密碼為123456 grant all privileges on *.* 

MySQL開啟遠端訪問許可權

1、第一步登入資料庫 [[email protected] ~]# mysql -uroot -p 2、進到mysql庫 MariaDB [(none)]> use mysql; 3、檢視許可權情況 MariaDB [mysql]> select

Redis3.2開啟遠端訪問

環境 安裝環境:win7系統 Redis版本:3.2.100 安裝模式:msi檔案安裝 開啟遠端訪問 Redis安裝完之後,在服務中可以看到對應的Redis服務,開啟屬性,可以看到“可執行檔案的路徑”是:”D:\Program Fi

mysql在Linux環境下開啟遠端訪問許可權和開放3306埠

一:開啟mysql遠端訪問許可權。        預設mysql的使用者是沒有遠端訪問的許可權的,那麼當程式跟資料庫不在同一臺伺服器上時,我們需要開啟mysql的遠端訪問許可權。一般有改表和授權兩種方