精华内容
下载资源
问答
  • 请注意,这里使用的是ubuntu 16.04 LTS版本系统,如系统不同,可能无法生效。在这里先假设两条数据:数据库服务器IP地址为:192.168.2.1本地IP地址为:192.168.1.1解决方案1:注册一个MySQL用户在数据库服务器上,...

    请注意,这里使用的是ubuntu 16.04 LTS版本系统,如系统不同,可能无法生效。

    在这里先假设两条数据:

    数据库服务器IP地址为:192.168.2.1

    本地IP地址为:192.168.1.1

    解决方案1:注册一个MySQL用户

    在数据库服务器上,使用root登陆进入命令行后执行以下语句:

    grant all privileges on *.* to user@192.168.1.1 identified by '123456';

    //user为用户名,192.168.1.1为本地地址,'123456'为设置的密码。

    //按照自己需要自行配置

    flush privileges;

    flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令。通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。而不必冒太大风险。

    然后在本地连接数据库

    mysql -h 192.168.2.1 -u user -p 123456

    解决方案2:设置防火墙

    使用以下语句检查3306端口是否已开放

    telnet 192.168.2.1 3306

    如3306端口已开放,请参考另外两个方法

    使用一下语句添加3306端口号

    sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

    -A INPUT :表明我们要将此规则追加到某个链的最后,由于我们要操作INPUT链接,所以这么写。

    -j ACCEPT :这个参数用于指定匹配的数据包的目标。用在这里表示接受和允许符合上述标准的数据包通过。

    实在不行就恢复默认策略

    sudo iptables -P INPUT ACCEPT

    sudo iptables -P OUTPUT ACCEPT

    sudo iptables -F

    或者直接卸载。。。

    sudo apt remove iptables

    解决方案3:修改bind-address

    进入到/etc/mysql/mysql.conf.d目录中

    cd /etc/mysql/mysql.conf.d

    修改其中的mysqld.cnf文件,将其中的bind-address = 127.0.0.1注释起来

    a29792871d451563d00f65d79aa02786.png

    重启mysql

    sudo service mysql restart

    展开全文
  • 数据库远程连接

    2021-08-13 16:09:54
    数据库远程连接 注意:实际工作中,数据库是安装在服务器当中的,如果要直连数据库进行校验,就必须远程连接 连接步骤 1、获取两个信息:服务器的IP地址,数据库的账号和密码(工作的时候找相关人员询问) 2、在...

    数据库的远程连接

    注意:实际工作中,数据库是安装在服务器当中的,如果要直连数据库进行校验,就必须远程连接
    连接步骤
    1、获取两个信息:服务器的IP地址,数据库的账号和密码(工作的时候找相关人员询问)
    2、在自己电脑上数据库工具(例如:navicat),建立连接,远程连接数据库
    3、连接过程中需要确认自己电脑和服务器是否能够正常通信(ping 命令)
    注意事项:
    1、课上使用的MySQL的账号密码虽然是root和1234,但是和CentOS系统的root用户没有关系

    展开全文
  • 今天同事说新装了一台云服务器,使用ssh登录正常,但是上面的达梦数据库服务端口不能访问。用netstat -anp查看端口是正常监听的,监听的地址也是允许任意ip访问并且防火墙和iptables都是关闭的我也觉得奇怪,于是...

    今天同事说新装了一台云服务器,使用ssh登录正常,但是上面的达梦数据库服务端口不能访问。

    用netstat -anp查看端口是正常监听的,监听的地址也是允许任意ip访问

    并且防火墙和iptables都是关闭的

    我也觉得奇怪,于是远程登录上去服务器。查看了达梦的端口,看起来是正常的。

    Active Internet connections (servers and established)

    Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

    tcp6 0 0 :::5236 ::😗 LISTEN 3810/dmserver

    ssh -v -p 5236 root@服务器公网ip 试一下访问达梦数据库 发现连接失败

    于是改成

    ssh -v -p 5236 root@127.0.0.1 发现是可以成功连接的

    防火墙都是关闭状态,应该不是防火墙问题,我尝试地使用traceroute 服务器公网ip,想看一下是不是网络路由有问题。

    结果从traceroute输出发现连接本机ip要经过好几台机,这有点不正常。

    traceroute to ##脱敏##, 30 hops max, 60 byte packets

    1 100.108.0.1 (100.108.0.1) 7.172 ms 7.271 ms 7.255 ms

    2 11.245.20.8 (11.245.20.8) 5.880 ms 6.032 ms 11.245.20.2 (11.245.20.2) 5.943 ms

    3 11.245.96.3 (11.245.96.3) 5.058 ms 4.933 ms 11.245.96.9 (11.245.96.9) 5.103 ms

    使用route -n查一下路由,发现是没有本机公网ip的路由,所以应该是走了default路由

    为什么缺了本地路由呢,难道是ip没配置好。但没配置好为什么ssh能连接呢?我尝试使用ifconfig -a查一下,发现一个问题:本机根本没有配置这个公网的ip!

    eth0: flags=4163 mtu 1500

    inet 192.168.0.137 netmask 255.255.255.0 broadcast 192.168.0.255

    inet6 fe80::8d9f:e6ba:acea:d7bd prefixlen 64 scopeid 0x20

    ether fa:16:3e:35:e6:b7 txqueuelen 1000 (Ethernet)

    RX packets 84212 bytes 49923509 (47.6 MiB)

    RX errors 0 dropped 0 overruns 0 frame 0

    TX packets 48468 bytes 14177057 (13.5 MiB)

    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    lo: flags=73 mtu 65536

    inet 127.0.0.1 netmask 255.0.0.0

    inet6 ::1 prefixlen 128 scopeid 0x10

    loop txqueuelen 1000 (Local Loopback)

    RX packets 58427 bytes 56052388 (53.4 MiB)

    RX errors 0 dropped 0 overruns 0 frame 0

    TX packets 58427 bytes 56052388 (53.4 MiB)

    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    virbr0: flags=4099 mtu 1500

    inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255

    ether 52:54:00:e8:4d:1c txqueuelen 1000 (Ethernet)

    RX packets 0 bytes 0 (0.0 B)

    RX errors 0 dropped 0 overruns 0 frame 0

    TX packets 0 bytes 0 (0.0 B)

    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    virbr0-nic: flags=4098 mtu 1500

    ether 52:54:00:e8:4d:1c txqueuelen 1000 (Ethernet)

    RX packets 0 bytes 0 (0.0 B)

    RX errors 0 dropped 0 overruns 0 frame 0

    TX packets 0 bytes 0 (0.0 B)

    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    后来咨询了一下同行,才知道云服务器都是这样的,通过他们路由做nat映射,并不需要在本机配置公网ip。

    如果想知道本机公网ip,可以使用curl ip.cip.cc获取。

    于是我执行这个命令,给本机配置多一个虚拟ip(公网的)

    ifconfig eth0:1 $(curl ip.cip.cc) netmask 255.255.255.0 up

    再次执行ssh -v -p 5236 root@服务器公网ip,发现可以成功访问了。

    这就说明应该是云服务器的路由阻止了5236端口连接,而不是本机问题。

    接下来的事情就简单了,一边找华为云的接口人,看能不能多放开几个端口。在华为云回复前,我们自己使用ssh转发,**把远程端口通过ssh映射到本机访问。这样就可以绕开华为云的防火墙问题。

    展开全文
  • 实现两个Mysql数据库之间同步同步原理:MySQL 为了实现replication 必须打开bin-log 项,也是打开二进制的MySQL 日志记录选项。MySQL 的bin log 二进制日志,可以记录所有影响到数据库表中存储记录内容的sql 操作,...

    实现两个Mysql数据库之间同步同步原理:

    MySQL 为了实现replication 必须打开bin-log 项,也是打开二进制的MySQL 日志记录选项。MySQL 的bin log 二

    进制日志,可以记录所有影响到数据库表中存储记录内容的sql 操作,如insert / update / delete 操作,而不记录

    select 这样的操作。因此,我们可以通过二进制日志把某一时间段内丢失的数据可以恢复到数据库中(如果二进制日

    志中记录的日志项,包涵数据库表中所有数据,那么, 就可以恢复本地数据库的全部数据了)。 而这个二进制日志,

    如果用作远程数据库恢复,那就是replication 了。这就是使用replication 而不用sync 的原因。这也是为什么要设

    置bin-log = 这个选项的原因。

    在同步过程中,最重要的同步参照物,就是同步使用那一个二进制日志文件,从那一条记录开始同步。下面就介绍

    下怎样实现两个Mysql数据库之间的主从同步。

    一、 概述

    MySQL从3.23.15版本以后提供数据库复制(replication)功能,利用该功能可以实现两个数据库同步、主从模式、

    互相备份模式的功能。本文档主要阐述了如何在linux系统中利用mysql的replication进行双机热备的配置。

    二、 环境

    操作系统:Linux 2.6.23.1-42.fc8 # SMP(不安装XEN)

    Mysql版本:5.0.45-4.fc8

    设备环境:PC(或者虚拟机)两台

    三、 配置

    数据库同步复制功能的设置都在MySQL的配置文件中体现,MySQL的配置文件(一般是my.cnf):在本环境下

    为/etc/my.cnf。

    3.1 设置环境:

    IP的设置:

    A主机 IP:10.10.0.119

    Mask:255.255.0.0

    B主机 IP:10.10.8.112

    Mask:255.255.0.0

    在IP设置完成以后,需要确定两主机的防火墙确实已经关闭。可以使用命令service iptables status查看防火墙状态

    。如果防火墙状态为仍在运行。使用service iptables stop来停用防火墙。如果想启动关闭防火墙,可以使用setup命

    令来禁用或定制。

    最终以两台主机可以相互ping通为佳。

    3.2 配置A主(master) B从(slave)模式

    3.2.1 配置A 为master

    1、增加一个用户同步使用的帐号:

    GRANT FILE ON *.* TO ‘backup’@'10.10.8.112' IDENTIFIED BY ‘1234’;

    GRANTREPLICATION SLAVE ON *.* TO ‘backup’@'10.10.8.112' IDENTIFIED BY ‘1234’;

    赋予10.10.8.112也就是Slave机器有File权限,只赋予Slave机器有File权限还不行,还要给它REPLICATION SLAVE的权

    限才可以。

    2、增加一个数据库作为同步数据库:

    create databbse test;

    3、创建一个表结构:

    create table mytest (username varchar(20),password varchar(20));

    4、修改配置文件:

    修改A的/etc/my.cnf文件,在my.cnf配置项中加入下面配置:

    server-id = 1 #Server标识

    log-bin

    binlog-do-db=test #指定需要日志的数据库

    5、重起数据库服务:

    service mysqld restart

    查看server-id:

    show variable like ‘server_id’;

    实例:

    mysql> show variables like 'server_id';

    +---------------+-------+

    | Variable_name | Value |

    +---------------+-------+

    | server_id | 1 |

    +---------------+-------+

    1 row in set (0.00 sec)

    6、用show master status/G命令看日志情况。

    正常为:

    mysql> show master status/G

    *************************** 1. row ***************************

    File: mysqld-bin.000002

    positiion: 198

    Binlog_Do_DB: test,test

    Binlog_Ignore_DB:

    1 row in set (0.08 sec)

    3.2.2 配置B 为slave

    1、增加一个数据库作为同步数据库:

    create databbse test;

    2、创建一个表结构:

    create table mytest (username varchar(20),password varchar(20));

    3、修改配置文件:

    修改B的/etc/my.cnf文件,在my.cnf配置项中加入下面配置:

    server-id=2

    master-host=10.10. 0.119

    master-user=backup #同步用户帐号

    master-password=1234

    master-port=3306

    master-connect-retry=60 #预设重试间隔60秒

    replicate-do-db=test #告诉slave只做backup数据库的更新

    5、重起数据库服务:

    service mysqld restart

    查看server-id:

    show variables like ‘server_id’;

    实例:

    mysql> show variables like 'server_id';

    +---------------+-------+

    | Variable_name | Value |

    +---------------+-------+

    | server_id | 2 |

    +---------------+-------+

    1 row in set (0.00 sec)

    6、用show slave status/G命令看日志情况。

    正常为:

    mysql> show slave status/G

    *************************** 1. row ***************************

    Slave_IO_State: Waiting for master to send event

    Master_Host: 10.10.0.119

    Master_User: backup

    Master_Port: 3306

    Connect_Retry: 60

    Master_Log_File: mysqld-bin.000001

    Read_Master_Log_Pos: 98

    Relay_Log_File: mysqld-relay-bin.000003

    Relay_Log_Pos: 236

    Relay_Master_Log_File: mysqld-bin.000001

    Slave_IO_Running: Yes

    Slave_SQL_Running: Yes

    Replicate_Do_DB: test,test

    Replicate_Ignore_DB:

    Replicate_Do_Table:

    Replicate_Ignore_Table:

    Replicate_Wild_Do_Table:

    Replicate_Wild_Ignore_Table:

    Last_Errno: 0

    Last_Error:

    Skip_Counter: 0

    Exec_Master_Log_Pos: 98

    Relay_Log_Space: 236

    Until_Condition: None

    Until_Log_File:

    Until_Log_Pos: 0

    Master_SSL_Allowed: No

    Master_SSL_CA_File:

    Master_SSL_CA_Path:

    Master_SSL_Cert:

    Master_SSL_Cipher:

    Master_SSL_Key:

    Seconds_Behind_Master: 0

    1 row in set (0.01 sec)

    3.2.3 验证配置

    分别使用insert, delete , update在A主机进行增删改查数据库;查看B主机的数据库是否与A主机一致;若一致,则配

    置成功。

    3.3双机互备模式

    如果在A主机加入slave设置,在B主机加入master设置,则可以做B->A的同步。

    1、在A主机的配置文件中 mysqld配置项加入以下设置:

    master-host=10.10.8.112

    master-user=backup

    master-password=1234

    replicate-do-db=test

    master-connect-retry=10

    2、在B的配置文件中 mysqld配置项加入以下设置:

    log-bin

    binlog-do-db=test

    注意:当有错误产生时,*.err日志文件同步的线程退出,当纠正错误后,要让同步机制进行工作,运行slave

    start。

    重起A、B机器,则可以实现双向的热备份。

    总之,成功完成以上配置后,在主服务器A的test库里添加数据或删除数据,在从服务器B的test库里马上也能

    看到相应的变更。两台服务器的同步操作可以说是瞬间完成的。

    展开全文
  • 我这里设置的是别人远程访问我本地的数据库。方法:通过WiFi共享,别人连接该共享的WiFi,来访问我的数据库(局域网)。步骤1:下载WiFi共享大师。步骤2:安装好后开启WiFi。开启后状态如下:(wifi007)WiFi的IP地址...
  • java编程实现mysql数据库远程连接的简单示例本文包括两部分:一、设置mysql可以远程访问二、java...javadbpwd目标:使用用户'javadbuser'可以远程访问数据库'javadb'以下步骤尽量在命令行完成,在phpMyAdmin进行用...
  • 安装mysql sudo apt-get update sudo apt-get install mysql-server 输出: Reading ... 通过navicat远程连接数据库 端口默认就是3306, IP地址是我内部局域网的虚拟机192.168.1.8。 连接信息: 通过SQLYog远程登录
  • Linux下远程连接MySQL数据库的方法

    千次阅读 2021-05-12 04:13:14
    Linux下远程连接MySQL数据库的方法踩坑笔记估计搞了一个多小时才把这个远程连接搞好。一台本地电脑,一台云服务器,都是linux系统。步骤1、在服务器端开启远程访问首先进入mysql数据库,然后输入下面两个命令:grant...
  • 一、如果可以直接操作服务器检查步骤如下:1、确定数据库服务器的服务正常开启。2、确定数据库的链接数没有满。测试这个,可以在服务器上用查询命令。1)、用SQL语句:select count(*) from master.dbo.sysprocesses ...
  • 问题现象mysql 安装完毕,本机登录正常,在远程输入正确账号密码登录连接时报错如下问题原因远程IP没有登录权限,root用户默认只能在localhost也就是只能在本机登录,需要设置允许其他IP登录权限。解决方案1. 在...
  • 我需要使应用程序与位于同一网络中的oracle数据库连接(ping主机正常工作),但不能在同一台机器(即远程服务器)中 . 我开发了一个使用Qt的软件,我能够从我的机器上成功连接到该数据库,但是我无法从我的软件应该在其...
  • 表名 ') --把本地表导入远程表 insert openquery(ITSV, 'SELECT * FROM 数据库.dbo.表名 ') select * from 本地表 --更新本地表 update b set b.列B=a.列B FROM openquery(ITSV, 'SELECT * FROM ...
  • 做项目的时候,遇到了一个问题,远程连接数据库获取表时,如果数据库表示混合型的大小写,就会出现bug。一般第一个大写字母会变成小写,中间的大写字母会变成“_”,查了好多资料,才知道是thinkphp本身的bug(我用的...
  • 再次 netstat -apn|grep 3306,如果显示的是:::3306就可以了 一定要关闭防火墙,确认防火墙是关闭的, 修改虚拟机数据库中可以远程登录的权限,(最好本地的数据库远程数据库都设置相应的远程登录权限) ...
  • 一、生产环境:服务器端操作系统:CentOS Linux 6.6客户端操作系统: CentOS Linux 6.7数据库系统:mysql 5.5.41二、生产任务:远程连接MySQL数据库三、操作过程(包括一些异常情况):1.在客户端连服务端的情况[root@...
  • 无法远程登入MySQL数据库的解决办法一:尝试用MySQL Adminstrator GUI Tool登入MySQL Server,Server却回复错误讯息:Host ’60-248-32-13.HINET-IP.hinet.net’ is not allowed to connect to this MySQL server这...
  • 如题,放假在家玩树莓派集群,其中一台连不上数据库,今日怪事+1=============================================================================状态描述:平台树莓派 4B,架构 armv7,系统 raspbian 最新( debian...
  • 1.找到mysql数据库的user表。在user表中新建一条数据,设置User(username)和Host(开放访问MySQL的IP:例如123.118.17.201)以及登录密码。这样就设置了允许访问的用户名和IP地址(若想所有IP都可以访问,则可将Host...
  • 很多的用户在Windows环境中通常使用的是图形用户界面(GUI)去操作与管理数据库,对命令行方式可能不习惯。 而很多新手更是觉得MySQL(和PHP搭配之最佳组合)不容易掌握。总的来说,一般用户都是以命令行的方式来对MySQL...
  • 该楼层疑似违规已被系统折叠隐藏此楼查看此楼我把项目导出为jar后,在我的电脑上能正常运行并且能访问数据库,但是在别人电脑上就会报错,报错如下:...
  • 0. 前言网上看到很多开启Mysql远程访问端口,修改的配置文件我都没有找到。特意查看了我的Linux版本$ sudo lsb_release -a显示如下:Distributor ID: UbuntuDescription: Ubuntu 16.04.1 LTSRelease: 16.04Codename:...
  • Linux 常用操作总结1.linux下启动和关闭weblogicssh远程连接Linux服务器a.startt weblogic:1)找到/Oracle/Middleware/user_projects/domains/用户_domain目录。2)执行nohup ./startWebLogic.sh(nohup...文章shy丶...
  • 1) (PROGRAM = extproc) ) (SID_DESC = (GLOBAL_DBNAME = CITYLOCATION) (ORACLE_HOME = F:\oracle\product\10.2.0\db_1) (SID_NAME = CITYLOCATION) ) ) (注:CITYLOCATION为你的数据库名字。ORACLE_HOME为你...
  • 起因今天在ubuntu16.04环境下通过mysql workbench访问远程数据库时,发现无法连接问题,解决思路及方法记录如下,不足之处,请多指教。问题通过workbench输入密码访问时报这个错:Your connection attempt failed ...
  • 使用gitlab自带数据库,你是不知道密码的,也无法远程访问,而有这种需求时,就需要进行配置调整 1、在gitlab.rb中修改pg库的连接密码为你想要设置的密码,本文设置为"gitlab" vi/etc/gitlab/gitlab.rb gitlab_...
  • 近日在Ubuntu上安装了一个 MySQL 5.0,因为使用 phpMyAdmin 还必须安装 PHP,所以打算直接使用远程管理工具Navicat for MySQL 来连接。在 Ubuntu 中通过 mysql 命令行创建好一个数据表并分配了权限:代码如下:GRANT ...
  • 使用Navicat for MySql远程连接Linux 系统上的数据库解决mysql"Access denied for user'root'@'IP地址'"问题1.问题说明:在MYSQL 中,用远程软件登陆服务器,有时出现:Access denied for user 'root'@'localhost'...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 149,756
精华内容 59,902
关键字:

数据库正常单无法远程