精华内容
下载资源
问答
  • MySQL默认root用户只能本地访问,不能远程连接管理mysql数据库Linux如何开启mysql远程连接?下面这篇文章主要给大家介绍了在Linux系统下实现远程连接MySQL数据库的方法教程,需要的朋友可以参考借鉴,下面来一起看...
  • 从什么也不懂完美部署的血泪之路告诉我: 不要一激动就删库! 不要一激动就删库!...其实,这件事一开始我并没有打算做这么多,只是单纯的想把数据直接用硬盘拷电脑中,然后直接导入数据库中...


    从什么也不懂到完美部署的血泪之路告诉我:
    不要一激动就删库!
    不要一激动就删库!
    不要一激动就删库!
    30多g的数据,说删就删,换的就是又要耗费大概半天时间去scp传输,耗是时间,逝去的可都是青春啊。整个过程其实都还算顺利,坑多了点,但网上的资料都比较友好,基本都是有解决方案的。本文也附上了很多解决方案的链接~

    注意:以下操作的前提是远程主机已经安装了mysql数据库,并创建了database,如果是还没有安装mysql的小伙伴建议先找安装教程,网上有很多,教程很全,这里就不废话了。

    实现终端远程登录

    其实,这件事一开始并没有打算做这么多,只是单纯的想把数据直接用硬盘拷到电脑中,然后直接导入数据库中再建立连接就完事了,但谁想上来就遇到了第一个问题,也就是特立独行的Linux系统无法识别我手中的MacOS格式和ExFAT格式的硬盘,也就直接否定了这条简单粗暴的道路。于是伙伴告诉我可以尝试ssh远程连接,同时也能解决这个Linux 系统无法输入中文字符的问题。

    • 首先,在本地主机打开终端,输入ssh user@host命令(其中user是远程主机的用户名,host则是远程主机的IP地址)。

    不用说,第一次登录肯定是失败了,因为我什么也没有检查,如果你的登录成功了那么可以直接跳过这一节了讲解了。

    这里说一下ssh登录失败后的排错经验:

    1. 检查远程主机 ip 是否可用 (ping)
    2. 检查远程主机 22 端口是否被防火墙禁用
    3. 检查 ssh 是否开启
    4. 检查 ssh_key 是否存在

    我遇到的问题有两个:

    1. 其一是 CentOS7(这是我使用的远程主机系统版本) 的防火墙端口开启:

    参考 Centos7防火墙开启端口并测试

    1. 第二个坑,报错如下:
      SSH_Unable to negotiate with 192.168.1.152 port 22: nomatching host host key type found. Their offer:ssh-dss
      根据搜索结果得知原因为:没有找到相关的主机密钥类型。解决方法很简单,没有key生成key就可以了。

    操作如下:

    • 远程主机打开终端并输入以下命令生成ssh_key
    ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
    ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
    
    • 重启ssh
    service ssh restart
    

    重启ssh之后远程如果问题依然存在,此时确认密钥已存在,可以进一步指定主机key算法(最后解决方案)

    • 远程主机的~/.ssh目录下添加config
    vi ~/.ssh/config
    
    • 在config中写入以下code:
    Host *
        HostKeyAlgorithms +ssh-dss
    
    • 重启ssh
    service ssh restart
    
    • 本地主机终端的输入命令中加参数
    ssh -o HostKeyAlgorithms=+ssh-dss user@host
    

    输入密码,登录成功!
    在这里插入图片描述

    参考:Nomatching host host key type found

    SSH命令行传输文件到远程服务器(及其加速)

    以前在windows上一直用可视化的文件传输工具,操作方便,但在mac下用终端登录上去之后,想传个文件再用工具就显得绕路了,所以我搜索了一番发现,还是有命令行工具的,名字叫SCP。
    使用方式如下(以下操作都是在本地主机):

    • 上传本地文件到服务器
    scp /path/filename user@host:/path/
    

    其中user是远程主机的用户名,host则是远程主机的IP地址,下同。

    例如 scp /root/data.sql root@192.168.225.181:/home/data.sql 就是把本机 /root/ 目录下的 test.xml 文件上传到192.168.225.181这台服务器上的 /home/ 目录中

    • 从服务器上下载文件
    scp user@host:/path/filename /local_dir/path(本地目录)
    

    参考 使用SSH命令行传输文件到远程服务器

    虽然找到了直接的传输方法,但接下来还出现了一个问题就是,要上传的 .sql 文件过大,传输耗时太长了(大概30G的文件要传几天)。于是,百般搜索下我找到了加快 scp 传输速度的方法。

    • 改变 ssh 加密算法,可以让速度更快(通常,越弱的加密算法,速度越快)
    • 通常压缩会降低scp速度,但这与数据类型有很大关系,对压缩率非常高的数据启用压缩,可以加速

    具体方法就是在 scp 后面加参数就好啦

    scp -r -c arcfour128 ...
    scp -r -c aes192-cbc ...
    启用压缩使用参数: -o "Compression yes"
    

    参考 加速scp传输速度

    mysql导入sql文件(及其加速)

    文件拷入远程服务器后就是数据入库了,以下操作都在远程主机上进行。
    .sql文件的导入很简单,常用source 命令:

    • 进入mysql数据库控制台
    mysql -u root -p
    

    进入数据库,然后使用source命令,后面参数为要导入的文件路径(如这里用到的.sql)

    mysql>use 数据库名称
    mysql>source /home/data.sql
    

    参考 mysql导入导出sql文件

    和传输一样,这里也遇到了导入速度太慢的问题,解决方法为:

    • 在mysql的安装目录下找到my.cnf文件(windows 下为 my.ini,linux 下为 my.cnf)
    • innodb_flush_log_at_trx_commit这个参数改为0
    • 加入以下代码:
    interactive_timeout = 120
    wait_timeout = 120
    max_allowed_packet = 32M
    

    参考 MySQL mysqldump与source导入慢的解决方法

    我在修改时没有加最后三行代码,只修改了参数,速度确实快了很多。这里值得注意的是innodb_flush_log_at_trx_commit这个参数的意义,要根据自己数据的重要性进行更改:

    • 如果innodb_flush_log_at_trx_commit设置为 0,log buffer 将每秒一次地写入 log file 中,并且 log file 的 flush (刷到磁盘)操作同时进行。该模式下,在事务提交的时候,不会主动触发写入磁盘的操作。
    • 如果innodb_flush_log_at_trx_commit设置为 1,每次事务提交时 MySQL 都会把 log buffer 的数据写入 log file,并且 flush 中去.
    • 如果innodb_flush_log_at_trx_commit设置为 2,每次事务提交时 MySQL 都会把 log buffer 的数据写入 log file 。但是 flush 操作并不会同时进行。该模式下,MySQL 会每秒执行一次 flush 操作。
    • 注意:
      由于进程调度策略问题,这个“每秒执行一次 flush(刷到磁盘) 操作”并不是保证100%的“每秒”。

    参考 sync_binlog和innodb_flush_log_at_trx_commit浅析

    Linux下mysql的远程连接

    远程主机的数据库准备好了以后还没有结束,我们的目的是在其他主机上直接调用远程主机上mysql的数据进行使用。

    以下操作可直接在远程主机进行,也可在本地主机通过 ssh 连接上远程主机后操作,都是一样的。

    • 登陆数据库,输入密码
    mysql -u root -p
    
    • 创建用户用来远程连接
    mysql> GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
    

    (username处填写用户名,%表示所有的电脑都可以连接,也可以设置某个ip地址运行连接,password处填写密码)

    • 让命令立即生效,查询端口号,然后退出MySQL
    mysql> flush privileges;
    mysql> show global variables like 'port';  
    mysql> exit;
    

    如图,我查到的端口号为3306:
    在这里插入图片描述

    • 找到 my.cnf 文件,将 bind-address = 127.0.0.1,设置成bind-address = 0.0.0.0(设备地址)

    • 重新启动mysql

    /etc/init.d/mysql stop
    /etc/init.d/mysql start
    
    • 设置完毕,在其他主机上尝试登录,比如用 windows 上的 navicat 试一试。

    参考 Linux下mysql的远程连接

    MySQL数据库目录转移问题

    其实我在导入数据时还收获了意外的问题,就是在把数据导入 mysql 的过程中,发现 mysql 存储路径下的空间不够用。。。
    这个问题让我差点换另一台主机从头再来,也是我删除了 30G 的数据的原因。随后我发现Linux主机目录下还空余着另一个400G盘,那我是不是可以通过修改mysql中数据的存储路径来解决问题呢?事实证明,还真有这种办法(暴风哭泣)。

    具体实现我就不做解释了,直接上链接吧!

    详见:
    Linux下mysql修改数据库存放目录方法和可能遇到的问题
    Linux(CentOS)下更改/转移MySQL数据库目录

    展开全文
  • 环境:开发的项目需要部署在linux上,但原来的项目连接的是本地数据库,我的linux上没有装数据库,所以需要让项目连接到本地数据库,先说解决的过程。 一、修改项目的配置文件 项目部署到linux上之后,使用...

    环境:开发的项目需要部署在linux上,但原来的项目连接的是本地的数据库,我的linux上没有装数据库,所以需要让项目连接到本地的数据库,先说解决的过程。

    一、修改项目的配置文件

    项目部署到linux上之后,使用localhost就不能连接上本地的数据库了,需要修改为宿主机的IP地址


    二、关闭win防火墙

    防止拒绝连接

     三、关闭linux防火墙

    关闭防火墙

    systemctl stop firewalld

     查看防火墙状态

    systemctl status firewalld

     四、mysql 赋权操作

    当前所有用户的权限赋给root用户

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
    FLUSH PRIVILEGES;

     一顿操作之后启动项目,postman测试没有出bug,说明成功连接到本地的数据库

    第一次发文章,有问题的地方还请大佬指出,我好做修改 !!!

    展开全文
  • Linux下将远程mysql数据库需要的数据导出到本地文件,然后将文件导入到本地的oracle数据库中,通过shell脚本和sqlldr实现每日定时任务
  • 本地连接linux数据库无法连接问题

    千次阅读 2019-07-14 10:56:55
    1、linux防火墙未加3306端口,或者服务器是否堆在开通3306端口 2、关闭firewalld防火墙:systemctl stop firewalld,systemctl disable firewalld 3、服务器上登录mysql,查看是否有地址限制,(这个的原因可能性...

    可能的原因:

    1、linux防火墙未加3306端口,或者服务器是否堆在开通3306端口

    2、关闭firewalld防火墙:systemctl stop firewalld,systemctl disable firewalld

    3、服务器上登录mysql,查看是否有地址限制,(这个的原因可能性很大)

    use mysql;

    select host,user from user;

    grant all privileges on *.* to 'root'@'%' identified by '密码';

    flush privileges
     

    展开全文
  • 本地连接远程MySQL数据库(Linux)

    千次阅读 2018-08-22 20:00:21
    尝试了两种在本地连接远程 MySQL 数据库的方式,一种是在本地使用 cmd 进行连接,还有一种就是使用 MySQL 的可视化工具 Navicate for MySQL 进行连接 一、对远程 MySQL 进行授权 由于远程的 MySQL 默认是不允许从...

    尝试了两种在本地连接远程 MySQL 数据库的方式,一种是在本地使用 cmd 进行连接,还有一种就是使用 MySQL 的可视化工具 Navicate for MySQL 进行连接

    一、对远程 MySQL 进行授权

    由于远程的 MySQL 默认是不允许从远程访问他的,因此我们需要先进行授权,

    1. 使用的一种方法是从任何主机都可以连接到 MySQL 服务器,方法如下:

    GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
    FLUSH  PRIVILEGES;
    

    我使用的就是这一种,亲测可用!另外,我百度到了另外两种方法,只是不是从任何主机访问服务器了

    2. 如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码

    GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
    FLUSH  PRIVILEGES;
    

    3. 如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器的dk数据库,并使用mypassword作为密码

    GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
    FLUSH  PRIVILEGES;
    

    FLUSH PRIVILEGES:刷新权限

    二、使用 cmd 连接

    MySQL 的命令行登陆格式为:

    mysql -h主机地址 -u用户名-p用户密码
    

    主机地址:如果连接的是本地数据库,则不用填;如果是远程数据库,则填写服务器的 ip
    **注:**如直接运行此命令需要配置环境变量,否则需要先进入到 MySQL 的安装路径下然后在执行命令,配置环境变量过程不在赘述

    接下来输入参数,登陆成功结果如下:

    C:\Users\luwen> mysql -h120.78.222.54 -uroot -p
    Enter password: ****
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 47
    Server version: 5.7.22 MySQL Community Server (GPL)
    
    Copyright (c) 2000, 2018, 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> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | bank               |
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    5 rows in set (0.04 sec)
    

    大功告成?

    **注:**如果出现错误,很有可能就是因为你没有设置权限,因此一定要设置权限!!!

    三、使用 Navicate for MySQL 连接

    点击连接,设置相关参数
    连接设置.png
    操作成功

    四、参考

    https://www.cnblogs.com/blogforly/p/5997553.html
    https://blog.csdn.net/lhh1002/article/details/6131733

    展开全文
  • 本地MySQL驱动使用的是8.0版本的驱动,而Linux内的MySQL版本是5.1版本,驱动版本太高所以导致连接不成功,把驱动改成相对应的版本即可。      解决问题: IDEA内置可以下载对应的5.1版本的驱动 位置:  此方法...
  • linux连接oracle数据库的步骤

    万次阅读 2019-06-14 15:50:48
    先登录数据库服务器 su – oracle 切换oracle用户 sqlplus 数据库用户名/密码@实例名 @脚本名称 执行脚本
  • linux连接不上数据库(很实用)

    千次阅读 2019-08-11 13:06:51
    我的问题是:在linux中,maven项目连接不上数据库,我的数据库下载好了,但就是连接不上,通过网上查资料和自己找错误,慢慢的总结出来了;我总结了两个方法,方法一不行,就用方法二 方法一: String url=“jdbc:...
  •  1.Linux服务器一般是ssh协议,如果本地也是Linux环境,可以直接通过shell连接,命令:  ssh -l root -p 8080 202.***.***.***  其中root为用户名,一般为root,8080为端口,202.***.***.***为服务器ip...
  • Linux中创建Mariadb数据库连接本地的SQLyog数据库 指令为:yum install mariadb-server 如果下载网速不够好,会出现一个FAILED的失败提示,这个会有解决措施 出现FAILED失败提示,执行:yum clean all,刚刚下载...
  • 一台本地电脑,一台云服务器,都是linux系统。 步骤 1、在服务器端开启远程访问 首先进入mysql数据库,然后输入下面两个命令: grant all privileges on *.* to 'root'@'%' identified by 'password'; flush ...
  • 本地数据库上传到Linux服务器

    千次阅读 2019-04-25 09:52:55
    第一步:右键点击要上传的数据库--> 转储sql文件 -->数据和结构 -->之后选择保存的路径就可以了 第二步:将你保存的.sql文件通过辅助工具上传你的服务器上(在此推荐两个工具吧,一个是Xshell自带的...
  • windows本地项目实现连接linux数据库

    千次阅读 2019-06-10 09:54:35
    Windows本地项目连接linux服务器数据库 一、需要在linux上开放端口,同时本地数据库连接记得修改IP地址 1.firewall-cmd --zone=public --list-ports 查看linux上已开放端口 2.firewall-cmd --zone=public --add-...
  • Linux安装 MySQL + Navicat连接数据库 + 数据库迁移
  • 一、MySQL 连接本地数据库,用户名为“root”,密码“123”(注意:“-p”和“123” 之间不能有空格) C:>mysql -h localhost -u root -p123 二、MySQL 连接远程数据库(192.168.0.201),端口“3306”,用户名为...
  • 场景为当应用某个应用使用本地Docker容器部署,但是还需要访问本地服务时(如数据库),使用宿主机IP,127.0.0.1,localhost均无法访问,后2者好理解,都属于Docker容器的回环地址,前者:相当于Docker本身,对于...
  • 有这样一个场景:本地A(Win10电脑,装有Navicat),跳板机B(Linux,ip:10.10.1.101),远程mysql数据库服务器C(Linux,ip:192.168.111.101)。A想通过Navicat直连C来进行增删改查,但是由于防火墙和网络安全...
  • 详述了robot3t远程连接mongodb数据库的过程,亲测有效!亲测有效!
  • Linux虚拟机CentOS 7 64位操作系统:mysql、jdk。 Windows10操作系统:mysql、eclipse、WinSCP 前期准备 首先需要一个Linux CentOS7操作系统,可以通过VMware来解决,具体下载教程如果不懂的可以参考以下链接:Linux...
  • Linux上测试连接mysql数据库

    千次阅读 2020-05-11 19:51:36
    基础环境:在Linux上安装mysql 1、检查虚拟机IP在本地是否可以ping 通过 ...4、远程连接虚拟机数据库访问 端口都开启了,但还是连不上,看提示说明至少已经关联mysql,不允许是因为权限不够  原因:一般m
  • 虚拟机linux链接宿主机数据库方法

    千次阅读 2018-03-28 17:47:12
    近期有使用虚拟机开发的需求,不过本地调试的数据库在win里面,数据比较多,就没有在虚拟机里安装数据库,于是尝试在虚拟机下的linux链接主机win下的mysql以VM举例,首先右键更改win下VM的网络适配器-----》属性然后...
  • Linux连接局域网数据库服务器

    千次阅读 2019-09-02 21:40:22
    文章目录下载安装phpMyAdmin配置Mysql数据库配置phpMyAdmin配置Nginx 单体服务器的业务承载量有限,所以应用服务器和数据库...需要通过A服务器的公网IP连接A服务器,然后来管理B服务器上的数据库。 下载安装phpM...
  • 连接Linux的MySQL数据库的错误码2003

    千次阅读 2020-03-16 11:52:48
    报错信息 错误码:2003 Can’t connect to MySQL server on ‘xxx.xxx.xxx.xxx’(10060) 解决过程 权限已经开放了 mysql>...并且在Linux数据库中能查 又刷新了下。。 mysql> flush privilege...
  • 2.本地数据库mysql是否允许远程连接 3.本地系统3306是否对外开放(我是在这个地方出了问题). 步骤一:首先查看防火墙是否开启,常用命令 [root@localhost ~]# service iptables status iptables: Firewall is not ...
  • 本地mysql数据库导入到linux数据库

    千次阅读 2017-01-06 11:29:10
    连接数据库。 2 在连接终端上执行命令create database JD_Model 数据库名; 执行完成后,验证数据库是否创建成功。执行命令show database;查看是否有JD_Model数据库
  • 需求:办公室中我的电脑上安装了一个mysql服务,同事希望连接本地的MySQL数据库 问题:同事连接的时候提示:拒绝访问,没有权限 方案: 本地连接之后找到mysql库的user表, 找到user为root的这条数据,修改...
  • linux下使用MariaDB数据库的过程

    千次阅读 2020-06-30 23:21:37
    使用MariaDB 数据库来进行操作,了解数据库的使用原理,校对规则以及删库后如何正确恢复数据库,不用跑路
  • 有次同事提出开发使用的MySQL数据库连接很慢,因为我们的MySQL开发数据库是单独一台机器部署的,所以认为可能是网络连接问题导致的。 在进行 ping和route后发现网络通信都是正常的,而且在MySQL机器上进行本地连接...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 151,365
精华内容 60,546
关键字:

linux连接到本地数据库

linux 订阅