Ubuntu上搭建mysql服务器及外部访问

安装mysql服务器和客户端

liukang@liukang-virtual-machine:~$ sudo apt-get install mysql-server mysql-client

判断mysql是否安装成功:
启动mysql服务

liukang@liukang-virtual-machine:~$ sudo service mysql restart

命令行登录mysql:

liukang@liukang-virtual-machine:~$ mysql -u root -p  
Enter password:  

使用命令show global variables like ‘port’;查看端口号

mysql> show global variables like 'port';  
+---------------+-------+  
| Variable_name | Value |  
+---------------+-------+  
| port | 3306 |  
+---------------+-------+  
1 row in set (0.00 sec)  

修改端口,编辑/etc/mysql/my.cnf , 注意该端口未被使用,保存退出。

liukang@liukang-virtual-machine:~$ sudo vi /etc/mysql/my.cnf  
[mysqld]  
port=3606  
datadir=/var/lib/mysql  
socket=/var/lib/mysql/mysql.sock  
user=mysql  
# Disabling symbolic-links is recommended to prevent assorted security risks  
symbolic-links=0  

[mysqld_safe]  
log-error=/var/log/mysqld.log  
pid-file=/var/run/mysqld/mysqld.pid  

"my.cnf" 11L, 261C written  

liukang@liukang-virtual-machine:~$  

重新启动mysql

liukang@liukang-virtual-machine:~$ /etc/init.d/mysqld restart  

安装完成后使用Navicat连接一下,但是报错了:
2003 can’t connect to mysql server on ‘192.168.1.4’ (10038)

本机用“ mysql -u root -p”都可访问,但外部却无法访问?:
/etc/mysql/my.cnf中的 bind-address = 127.0.0.1注释掉即可

liukang@liukang-virtual-machine:~$ sudo vi /etc/mysql/my.cnf   

# Instead of skip-networking the default is now to listen only on  
# localhost which is more compatible and is not less secure.  
# bind-address           = 127.0.0.1  

修改配置记得重启mysql

再次用Navicat连接一下,还是报错:
1130 - Host ‘192.168.1.2’ is nor allowed to connect to this MySQL server
不被允许?那就是访问权限的问题了

liukang@liukang-virtual-machine:~$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 40
Server version: 5.5.55-0ubuntu0.14.04.1 (Ubuntu)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> select host, user, password from user;
ERROR 1046 (3D000): No database selected
mysql> use mysql;
Database changed
mysql> select host, user, password from user;
+-------------------------+------------------+-------------------------------------------+
| host                    | user             | password                                  |
+-------------------------+------------------+-------------------------------------------+
| localhost               | root             | *AEDD34275BE2CCF550FF1257B2C822B57DB858F0 |
| liukang-virtual-machine | root             | *AEDD34275BE2CCF550FF1257B2C822B57DB858F0 |
| 127.0.0.1               | root             | *AEDD34275BE2CCF550FF1257B2C822B57DB858F0 |
| ::1                     | root             | *AEDD34275BE2CCF550FF1257B2C822B57DB858F0 |
| localhost               | debian-sys-maint | *AFC871473228030333589B66C3085F7741545136 |
+-------------------------+------------------+-------------------------------------------+
5 rows in set (0.00 sec)

mysql> update user set host = "%" where host = "liukang-virtual-machine" and user = "root";
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    41
Current database: mysql

Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> select host, user, password from user;
+-----------+------------------+-------------------------------------------+
| host      | user             | password                                  |
+-----------+------------------+-------------------------------------------+
| localhost | root             | *AEDD34275BE2CCF550FF1257B2C822B57DB858F0 |
| %         | root             | *AEDD34275BE2CCF550FF1257B2C822B57DB858F0 |
| 127.0.0.1 | root             | *AEDD34275BE2CCF550FF1257B2C822B57DB858F0 |
| ::1       | root             | *AEDD34275BE2CCF550FF1257B2C822B57DB858F0 |
| localhost | debian-sys-maint | *AFC871473228030333589B66C3085F7741545136 |
+-----------+------------------+-------------------------------------------+
5 rows in set (0.00 sec)

mysql> 

这样在另一台电脑上使用Navicat就可以成功连接至MySQL数据库服务器了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ubuntu搭建MySQL服务器可以按照以下步骤进行操作: 1. 安装MySQL服务器: 打开终端,运行以下命令以安装MySQL服务器: ``` sudo apt update sudo apt install mysql-server ``` 2. 配置MySQL服务器: - 运行以下命令以启动MySQL安全性脚本,该脚本将帮助你设置root密码和其他安全设置: ``` sudo mysql_secure_installation ``` 在设置过程中,你可以选择是否启用密码强度验证策略,是否删除匿名用户,是否禁用远程root登录等。根据你的需求进行选择。 - (可选) 如果你希望远程访问MySQL服务器,请打开MySQL配置文件进行相应设置: ``` sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf ``` 找到`bind-address`行,并将其注释掉(在行前添加`#`),保存并关闭文件。 3. 启动MySQL服务: 运行以下命令以启动MySQL服务: ``` sudo systemctl start mysql ``` 4. 验证MySQL服务器是否正在运行: 运行以下命令以验证MySQL服务器是否已成功启动: ``` sudo systemctl status mysql ``` 5. 登录到MySQL服务器: 运行以下命令以登录到MySQL服务器: ``` sudo mysql -u root -p ``` 输入之前设置的root密码。 现在,你已经在Ubuntu上成功安装和配置了MySQL服务器。你可以使用MySQL客户端工具,如`mysql`命令行工具或MySQL Workbench,来管理和操作数据库。 如果你遇到任何问题,请参考MySQL的官方文档或Ubuntu的官方文档以获取更多帮助和指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值