精华内容
下载资源
问答
  • 环境:开发的项目需要部署在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,说明成功连接到本地的数据库

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

    展开全文
  • 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数据库目录

    展开全文
  • 本地连接远程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

    展开全文
  • 本地连接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
     

    展开全文
  • linux连接oracle数据库的步骤

    万次阅读 2019-06-14 15:50:48
    先登录数据库服务器 su – oracle 切换到oracle用户 sqlplus 数据库用户名/密码@实例名 @脚本名称 执行脚本
  • Linux下将远程mysql数据库需要的数据导出到本地文件,然后将文件导入到本地的oracle数据库中,通过shell脚本和sqlldr实现每日定时任务
  • 本地MySQL驱动使用的是8.0版本的驱动,而Linux内的MySQL版本是5.1版本,驱动版本太高所以导致连接不成功,把驱动改成相对应的版本即可。      解决问题: IDEA内置可以下载对应的5.1版本的驱动 位置:  此方法...
  • linux登录到 mysql数据库: mysql -u root -p 输入密码 切换到mysql数据库 mysql>use mysql 输入grant all privileges on *.* to root@"%&q
  • Linux中创建Mariadb数据库连接本地的SQLyog数据库 指令为:yum install mariadb-server 如果下载网速不够好,会出现一个FAILED的失败提示,这个会有解决措施 出现FAILED失败提示,执行:yum clean all,刚刚下载...
  • Linux连接局域网数据库服务器

    千次阅读 2019-09-02 21:40:22
    文章目录下载安装phpMyAdmin配置Mysql数据库配置phpMyAdmin配置Nginx 单体服务器的业务承载量有限,所以应用服务器和数据库...需要通过A服务器的公网IP连接A服务器,然后来管理B服务器上的数据库。 下载安装phpM...
  • 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系统。 步骤 1、在服务器端开启远程访问 首先进入mysql数据库,然后输入下面两个命令: grant all privileges on *.* to 'root'@'%' identified by 'password'; flush ...
  • 如果一个问题出现两次,那么这个问题就值得去研究下了,上次客户说MYSQL数据库很慢,我还在想,不会是PHP的问题吧?
  • Linux上测试连接mysql数据库

    千次阅读 2020-05-11 19:51:36
    基础环境:在Linux上安装mysql 1、检查虚拟机IP在本地是否可以ping 通过 ...4、远程连接虚拟机数据库访问 端口都开启了,但还是连不上,看提示说明至少已经关联到mysql,不允许是因为权限不够  原因:一般m
  •  1.Linux服务器一般是ssh协议,如果本地也是Linux环境,可以直接通过shell连接,命令:  ssh -l root -p 8080 202.***.***.***  其中root为用户名,一般为root,8080为端口,202.***.***.***为服务器ip...
  • 连接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...
  • Linux安装 MySQL + Navicat连接数据库 + 数据库迁移
  • linux连接不上数据库(很实用)

    千次阅读 2019-08-11 13:06:51
    我的问题是:在linux中,maven项目连接不上数据库,我的数据库下载好了,但就是连接不上,通过网上查资料和自己找错误,慢慢的总结出来了;我总结了两个方法,方法一不行,就用方法二 方法一: String url=“jdbc:...
  • 一、MySQL 连接本地数据库,用户名为“root”,密码“123”(注意:“-p”和“123” 之间不能有空格) C:>mysql -h localhost -u root -p123 二、MySQL 连接远程数据库(192.168.0.201),端口“3306”,用户名为...
  • 本地上安装了oracle数据库服务器,还下了instance client安装,环境变量也配了,并且在tnsnames.ora中也添加了相应的实例配置,就是怎么也连不上Linux中的数据库。求大神解救一下。
  • windows的navicat连接linux数据库

    千次阅读 2019-04-09 19:17:57
    在处理Windows连接linux上的数据库问题中,在解决了后 ····该问题的解决方案连接:https://blog.csdn.net/qq_36171645/article/details/89158446 结果发现自己又出现了 于是乎,在查阅各类资料后找到以下解决...
  • 小编只好用自己本地的mysql了。 在这个过程中遇到的错误: 1709 - Index column size too large. The maximum column size is 767 by 解决链接:https://blog.csdn.net/qq_40615403/article/details/111057860 ...
  • LINUX安装配置及连接oracle数据库

    千次阅读 2017-08-29 14:37:13
    LINUX安装配置及连接oracle数据库   注:最开始的准备工作是下载linux下的oracle安装包,其次是安装图形界面,后面的安装需要图形界面进行配置。这里用到的是vnc,vnc的安装过程已由他人写出。 一、 安装前的准备...
  • linux配置mysql数据库远程连接失败

    千次阅读 2017-06-20 20:02:09
    今天配置linux下mysql数据库可以远程访问的问题,百度这方面的资料有很多,但是方法都一样,都试过了却未能解决,记录一下 第一步:在/etc/mysql/my.cnf下找到bind-address = 127.0.0.1 在这行前加个"#"进行...
  • 详述了robot3t远程连接mongodb数据库的过程,亲测有效!亲测有效!
  • linux下使用MariaDB数据库的过程

    千次阅读 2020-06-30 23:21:37
    使用MariaDB 数据库来进行操作,了解数据库的使用原理,校对规则以及删库后如何正确恢复数据库,不用跑路
  • 本地数据库上传到Linux服务器

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

    千次阅读 2018-04-24 16:10:03
    解决方法如下:1、停止mysql服务: service mysql stop2、后台安全模式登陆mysql: mysqld_safe --user=mysql --skip-grant-tables --skip-networking3、新开一个窗口,直接在命令行输入mysql,登陆;...

空空如也

空空如也

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

linux连接本地数据库

linux 订阅