-
java 建立连接mysql_如何在JAVA中建立MySQL连接
2021-02-03 23:51:11我的Java程序似乎无法连接到Java,我已经启动了MySQL服务器,在phpMyAdmin中创建了一个数据库。但我对如何使用从MySQL下载的JDBC驱动程序感到困惑。这是我的代码:private void startConnection(){Connection conn = ...我的Java程序似乎无法连接到Java,我已经启动了MySQL服务器,在phpMyAdmin中创建了一个数据库。但我对如何使用从MySQL下载的JDBC驱动程序感到困惑。
这是我的代码:
private void startConnection()
{
Connection conn = null;
String url = "jdbc:mysql://localhost/";
String dbName = "bank";
String driver = "com.mysql.jdbc.Driver";
String userName = "root";
String password = "password";
try {
Class.forName(driver).newInstance();
conn = DriverManager.getConnection(url+dbName,userName,password);
System.out.println("Connected to the database");
conn.close();
System.out.println("Disconnected from database");
} catch (Exception e) {
System.out.println("NO CONNECTION =(");
}
}
我在JDK-jre\lib\ext文件夹中包含了jar文件,但没有包含任何内容。有什么想法吗?
提前谢谢。
-
如何在docker中建立mysql的主从同步
2019-03-06 10:42:48关于主从同步的背景: 最近在工作上遇到一个任务:将主服务器上...2.mysql运行在docker容器中; 找到mysql的配置文件 MySQL默认读取的配置文件是“my.cnf”,这个文件的位置可以通过以下命令查找: $ mysql --help|gr...关于主从同步的背景:
最近在工作上遇到一个任务:将主服务器上的mysql数据库和从服务器的mysql数据库实现主从同步。即当主库发生数据的变更时,从库也能做出同样的变更。
1.环境:Linux, docker;
2.mysql运行在docker容器中;找到mysql的配置文件
MySQL默认读取的配置文件是“my.cnf”,这个文件的位置可以通过以下命令查找:
$ mysql --help|grep 'my.cnf'
该查找命令会返回以下路径,排序靠前的路径会被优先读取,若文件不存在则往下读:
order of preference, my.cnf, $MYSQL_TCP_PORT, /etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf
我的my.cnf文件在路径/etc/mysql下,文件内容是这样的:
# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. #****** # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA !includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mysql.conf.d/
“!includedir /etc/mysql/conf.d/” 表示my.cnf配置文件中引入了/etc/mysql/conf.d/目录下所有的文件内容,因此在该目录下的文件中添加配置内容也能达到配置的作用。
由于修改配置文件极有可能将容器挂掉,无法进入容器从而无法把配置文件复原,因此,在最初创建这个容器的时候,出于安全考虑,我将宿主机的/home/mysql/conf/目录挂载到了容器的/etc/mysql/conf.d/目录中。这样,即使无法进入容器也可以在宿主机的挂载目录中找到对应的配置文件进行复原。
解决过程
a.主库和从库(master & slave)
我的主库和从库所在服务器分别在不同的服务器的docker中,mysql在容器的3306端口,对应着宿主机的3306端口
1.主库:10.30.129.204
2.从库:10.30.129.191b.主库的配置
在主库的配置文件中添加以下内容:
[mysqld] server_id=100 #服务器标志号,与从库的server_id标识不得和主库一致 log-bin=mysql-bin #设置日志文件,从库的I/O线程通过读这个文件的日志实现同步 binlog_cache_size=1M #日志的缓存大小 binlog_format=mixed #设置bin-log日志文件格式为:mixed,防止主键重复 slave_skip_errors=1062 #忽略所有的1062错误 expire_logs_days=7 #设置bin-log日志文件保存的天数
配置完成后回到宿主机上,重启mysql:
>docker restart mysql
重启后进入容器,在mysql shell环境下查看主库的状态:
mysql> show master status; +------------------+----------+--------------+------------------+-------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set | +------------------+----------+--------------+------------------+-------------------+ | mysql-bin.000001 | 154 | | | | +------------------+----------+--------------+------------------+-------------------+ 1 row in set (0.00 sec)
在这里记录下日志文件mysql-bin.000001和日志记录到的Position,在从库连接时需要用到。
除此之外,还需要在主服务器上添加一个用于从机访问的帐号, 赋予REPLICATION SLAVE权限:
GRANT REPLICATION SLAVE ON *.* TO '<SLAVE_NAME>'@'<SLAVE_ADDRESS>' IDENTIFIED BY '<PASSWORD>';
稍后,<SLAVE_NAME>和将会在从库的配置中使用。
c.从库的配置
和主库的配置过程一样,先将宿主机的相关目录挂载到配置文件所在的目录上,以防不测。现在我们来修改从库的配置文件,在配置文件中添加以下内容:
[mysqld] server_id=101 #必须和主服务器不一致 slave_skip_errors=1062 relay_log=mysql-relay-bin #设置中继日志 log_slave_updates=1 log_error=mysql_log_error #设置错误日志,当主从同步的过程中出现错误可以翻日志 master-host=10.30.129.204 master-user=<SLAVE_NAME> master-password=<PASSWORD> master-port=3306
配置完成后,在从服务器上重启一下mysql:
docker restart mysql
然后进入mysql shell中输入以下命令:
mysql> change master to master_host='10.30.129.204', #主服务器地址 master_user='<SLAVE_NAME>', master_password='<PASSWORD>', master_port=3306, master_log_file='mysql-bin.000001', #先前记录的主库日志文件名 master_log_pos=154; #日志给从库I/O线程读取的起始位置
开启同步:
mysql> start slave;
最后,查看从库同步的状态:
mysql> show slave status \G; *************************** 1. row *************************** Slave_IO_State: Waiting for master to send event Master_Host: 10.30.129.204 Master_User: slave Master_Port: 3306 Connect_Retry: 30 Master_Log_File: mysql-bin.000001 Read_Master_Log_Pos: 50325805 Relay_Log_File: mysql-relay-bin.000007 Relay_Log_Pos: 50325971 Relay_Master_Log_File: mysql-bin.000001 Slave_IO_Running: Yes Slave_SQL_Running: Yes Replicate_Do_DB: 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: 50325805
我们只需要关注以下几个指标:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Master_Log_File: mysql-bin.000001
Relay_Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 50325805
Exec_master_log_pos: 50325805日志文件和记录位置必须是两两一致的,IO线程和SQL线程都要是Yes状态。若同步失败,可以在错误日志下排查一下。到这里的时候,mysql的主从同步就大功告成了。
注意事项
1.主库中原先就有数据
如果主库中原来就存在数据,并且需要将先前的数据同步到从库中,可以全量备份数据库到从库。通过以下命令导出和导入:
#全量导出 mysqldump -h <host> -u <username> -p <password> --all-databases >all-databases.sql #全量导入(在从库的mysql shell环境下) mysql> source
2.主库一直有新数据的更新
在从主库备份全库数据,到查看主库mysql-bin-log日志文件的记录位置position的这段时间里,如果数据库被别的用户写入数据,会导致主从不一致的情况。安全起见,可以在备份前锁库,待记录完日志文件状态后再解锁:
#加锁 mysql> FLUSH TABLES WITH READ LOCK; #解锁 mysql> UNLOCK TABLES;
-
2008 mysql 本地安全_如何在Linux系统中建立mysql的本地安全机制?
2021-01-26 11:32:38如何在Linux系统中对MySQL进行本地的安全机制?今天我们将给大家介绍下具体的操作方法。local-infile=0#关闭远程连接,即3306端口。这是LinuxMySQL的默认监听端口。由于此处LinuxMySQL只服务于本地脚本,所以不需要...如何在Linux系统中对MySQL进行本地的安全机制?今天我们将给大家介绍下具体的操作方法。
local-infile=0#关闭远程连接,即3306端口。这是LinuxMySQL的默认监听端口。由于此处LinuxMySQL只服务于本地脚本,所以不需要远程连接。尽管LinuxMySQL内建的安全机制很严格,但监听一个TCP端口仍然是危险的行为,因为如果LinuxMySQL程序本身有问题,那么未授权的访问完全可以绕过LinuxMySQL的内建安全机制。
LinuxMySQL是常用系统,于是我学习研究了LinuxMySQL,在这里对大家详细介绍下LinuxMySQL系统应用,希望对大家有用。LinuxMySQL一般性安全设置。
打开/etc/my.cnf文件,修改以下设置,如果没有,可手动添加。#取消文件系统的外部锁skip-locking#不进行域名反解析,注意由此带来的权限/授权问题
skip-name-resolve#禁止LinuxMySQL中用“LOADDATALOCALINFILE”命令。这个命令会利用LinuxMySQL把本地文件读到数据库中,然后用户就可以非法获取敏感信息了。网络上流传的一些攻击方法中就有用它的,它也是很多新发现的SQLInjection攻击利用的手段!
local-infile=0#关闭远程连接,即3306端口。这是LinuxMySQL的默认监听端口。由于此处LinuxMySQL只服务于本地脚本,所以不需要远程连接。尽管LinuxMySQL内建的安全机制很严格,但监听一个TCP端口仍然是危险的行为,因为如果LinuxMySQL程序本身有问题,那么未授权的访问完全可以绕过LinuxMySQL的内建安全机制。(你必须确定,你是否真的不需要远程连接mysql)
skip-NETworking修改完my.cnf后,还需要对LinuxMySQL的用户名、帐号、及默认数据库进行调整首先先登录mysql,在终端窗口输入/usr/local/mysql/bin/mysql-uroot-p然后会提示输入密码,输入正确密码后,会出现mysql>提示符。输入以下命令:
为了使以上优化和安全设置生效,请重启Linux MySQL服务或Linux。
关于Linux MySQLl的安全设置,我们已经讲述得清清楚楚了,如果还有同学看不懂的,可以关注课课家,进行进一步的学习。
-
如何在MySQLWorkbench中建立新的连接&&如何建立数据库并创建新表
2020-06-07 15:28:07在MySQLWorkbench中建立新的连接 打开服务,启动MySQL57(右键启动) 2. 打开MySQLWorkbench,单击下图位置。 找到Server->Users and Privileges 单击“Add Account” 在Login中设置登录名和密码,在...在MySQLWorkbench中建立新的连接
- 打开服务,启动MySQL57(右键启动)
2. 打开MySQLWorkbench,单击下图位置。- 找到Server->Users and Privileges
-
单击“Add Account”
-
在Login中设置登录名和密码,在Administrative Roles中选中“DBA",设置好后点击“Apply”
-
回到这里,点击“+”号
-
设置连接名,输入用户名和密码,点击”Test Connection“
- 连接成功,点击”OK",“OK”
9.
建立数据库并创建新表
- 点击
- 点击连接数据库
-
设置数据库名称,选择gb2312,点击“Apply”
-
确认无误,点击“Apply”,之后再点击“Finish”
-
在左侧找到新创建的数据库,在下拉的“table”中右键点击“Create Table”
-
设置表的名称,点击右侧箭头
7. 设置属性和类型
约束(鼠标在上面停留一段时间即可显示):
PK:主键
NN:非空
UQ: UNIQUE
AI:自增- 点击“Apply”,“Apply”,“Finish”
- 准备插入数据
10. 插入数据,点击“Apply”- 查询一下
-
mysql 建立链接服务器_在MS sql server上如何创建mysql链接服务器
2021-01-19 05:21:21系统环境:Microsoft Windows Server 2003 Enterprise Edition Service Pack 2[Microsoft Windows NT-5.2(3790)]SQL Server Enterprise Edition 8.00.2066(sp4)centOSmysql部署步骤:linux环境1、在mysql中创建账号... -
如何在PHP中操作MySQL数据库
2019-01-01 16:10:21PHP操作MySQL数据库,首先要建立与MySQL服务器连接,函数语法如下: mysqli mysqli_connect([string server [,string username[,string password[,string dbname[,int port[,string socket]]]]]]) mysqli_connect()... -
odbd如何连接mysql_如何建立MYSQL数据库的连接?
2021-01-18 18:45:28我们有两种方法:一种是在ODBC数据源中建立一个DSN。具体方法是:1、打开控制面板中的ODBD数据源;2、选择系统DSN,添加一个新的DSN驱动程序;3、选择MyODBD,出现一个对话框供输入MySQL:(1)Windows DSN name:所要... -
e4a怎么建立mysql_如何建立MYSQL数据库的连接?
2021-01-18 18:00:01我们有两种方法:一种是在ODBC数据源中建立一个DSN。具体方法是:1、打开控制面板中的ODBD数据源;2、选择系统DSN,添加一个新的DSN驱动程序;3、选择MyODBD,出现一个对话框供输入MySQL:(1)Windows DSN name:所要... -
mysql如何建立索引workbench_如何在Ubuntu 18.04上安装和使用MySQL Workbench
2020-12-31 18:09:42如何在Ubuntu 18.04上安装和使用MySQL WorkbenchMySQL Workbench是面向MySQL数据库管理...在本教程中,我们将向您展示如何在Ubuntu 18.04上安装和使用MySQL Workbench。也适用于Ubuntu 16.04和任何基于Ubuntu的发行... -
mysql如何建立索引workbench_如何在 Ubuntu 18.04 上安装和使用 MySQL Workbench
2021-01-07 00:02:21MySQL Workbench 是一个面向 MySQL 数据库管理员和架构师...在本教程中,我们将向您展示如何在 Ubuntu 18.04 上安装和使用 MySQL Workbench 。相同的说明适用于 Ubuntu 16.04 和任何基于 Ubuntu 的发行版,包括 Li... -
mysql新建自己的链接_如何建立mysql的软连接?
2021-01-18 23:27:43建立mysql的软连接的命令是什么?今天给大家介绍mysql的软连接的方法。《RedHatLinux9实务自学手册》第18章数据库服务器管理,本章详细讲述这两种数据库系统的安装、配置以及在应用程序中的简单使用。本节为大家介绍... -
mysql怎么建立数据库代码_如何在Mysql创建一个数据库(代码示例)
2021-01-30 08:26:18本篇文章给大家带来的内容是关于如何在Mysql创建一个数据库,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。在Mysql中为了更加的清晰的工作,所以定制一套规范和几个常用的命令。下面我将来学习... -
python mysql 对象_如何在MySQL中插入Python对象?
2021-02-09 04:27:43假设服务器上存在一个名为“ test”的MySQL数据库,并且还创建了一个名为employee的表。...t1=('Steven','Assange',21,'M',2001)要在MySQL和Python 3之间建立接口,您需要安装PyMySQL模块。然后,您可以使... -
新手小白带你学系列之:MySQL如何建立连接
2019-05-14 14:48:19下面来具体介绍一下MySQL如何建立连接,具体如下: 1、使用mysql二进制方式连接 大家可以使用MySQL二进制方式进入到mysql命令提示符下来连接MySQL数据库。 实例介绍:以下是从命令行中连接mysql服务器的简单实例... -
如何在cpanel上建立自己的网站之:mysql数据库的设置
2011-11-14 16:50:47首先,给新手普及一下mysql设置的几个必要的参数 数据库服务器:也就是mysql所在的... 在一个数据库服务器中,可以创建无数个数据库用户授权。数据库用户和数据其实无关,除非你给这个用户授权可以操作改数据库。 -
MySQL服务器内部安全数据目录如何访问
2020-03-03 23:49:28MySQL服务器提供了一个通过MySQL数据库中的授权表来实现的灵活的权限系统。可以设置这些表的内容来允许或拒绝数据库对客户机的访问。这提供了关于未认证的网络访问数据的安全性。但是,如果服务器主机上的其他用户... -
mysql分布式事务wcf_在WCF中如何使用分布式事务
2021-02-02 05:32:27那么在WCF中如何使用分布式事务呢?下面我们以一个例子来演示在wcf中使用分布式事务。下图是这个demo的整个solution:为了便于测试,我们在建立一个临时表用于测试。表名为MGender.表中有两个字段:GenderCode,char(1... -
sqlserver怎么连接mysql_SQLServer数据库如何创建MYSQL的链接服务器
2021-01-30 05:12:19这两天需要从别人的mysql里读数据过来,由于在自动取数据过程中,要保存各类控制数据,这些数据还是存在我自己的SQLSERVER中比较方便,所以想来想去,决定用链接服务器。接下来把我建立链接服务器的经历跟各位分享... -
c 入库mysql_【Mysql】在Java中如何把用户绑定信息入库 | 学步园
2021-01-26 18:11:45现在都流行通过外站A账号去登陆B网站,从而为一些懒人用户...如果提供绑定服务,在后台的数据处理就多了一步,既要记录外站A账号的信息,又要为此用户建立本站B的账号信息。举一个简单的例子,首先在数据库中建立... -
mysql 如何表数据_MySQL表的创建和表中数据操作
2021-01-27 21:15:58主要涉及建立表结构,和对表中数据的增加删除修改查询等动作。站在一个新手角度的简单mysql表结构和数据操作。☆ 准备工作1,保证自己的电脑安装了mysql(my.ini下的字符集设置是utf8)2,确保电脑同时安装navicat... -
连接到mysql服务器_使用命令选项连接到MySQL服务器(参考MySQL官方文档)
2021-01-18 22:25:56使用命令选项连接到MySQL服务器(参考MySQL官方文档)本文介绍如何使用命令行选项为MySQL或mysqldump等客户端指定如何建立到MySQL服务器的连接。客户端程序要连接到MySQL服务器,必须使用正确的连接参数,例如服务器... -
Navicat for Mysql建立本地连接出现 1044或1045的问题并如何解决。
2019-05-08 17:17:25在我安装mysql的过程中,mysql已经安装成功,可是在建立数据库链接是报错:Navicat for Mysql建立本地连接出现 1045 -Access denied for user'root'@'ipAddress'(using password :yes) 的问题 实质上1045错误最主要... -
如何使用Azure数据库for MySQL在Azure上创建WordPress网站
2020-05-24 10:20:52例如,您的WordPress站点可以使用Azure App Service进行全局扩展,并且您的MySQL服务器可以托管在Azure数据库的MySQL上,该数据库提供MySQL的社区版本,而无需管理基础结构。 在本文中,我们将在Azure中部署... -
请教如何优化HA组中,mysql虚拟机的表现?
2019-01-09 12:26:44我建立了一个数据库高可用性服务器组,使用一台vm运行nginx作为负载均衡,两台mysql vm组成master-master repolication的高可用性结构,每台mysql vm上各自运行八个mysql实例。仅load balancer保留外网ip,其余都... -
mysql 命令连接服务器地址_使用命令选项连接到MySQL服务器(参考MySQL官方文档)...
2021-01-27 20:52:55使用命令选项连接到MySQL服务器(参考MySQL官方文档)本文介绍如何使用命令行选项为MySQL或mysqldump等客户端指定如何建立到MySQL服务器的连接。客户端程序要连接到MySQL服务器,必须使用正确的连接参数,例如服务器... -
打开一个到mysql服务器的连接服务器_使用命令选项连接到MySQL服务器(参考MySQL官方文档)...
2021-01-20 00:54:37使用命令选项连接到MySQL服务器(参考MySQL官方文档)本文介绍如何使用命令行选项为MySQL或mysqldump等客户端指定如何建立到MySQL服务器的连接。客户端程序要连接到MySQL服务器,必须使用正确的连接参数,例如服务器... -
mysql数据库表同步数据_如何在 MySQL 数据库之间同步数据表
2021-01-25 14:00:29假设数据库A为主机,数据库B为从机(A向B提供同步服务,即B中的数据来自A)A机器:IP=10.10.151.166B机器:IP=10.10.151.156下面看单向同步的配置步骤:1 在机器A中建立一个新的数据库,sql语句:[sql] view plain ... -
在7层分发中,http,mysql是如何控制数据包的走向的
2012-12-07 02:16:56HTTP服务器与分发器建立连接并登录 HTTP发送命令请求 分发器根据分发配置,与相应的mysql数据库服务器连接 接着分发器以授权用户发送指令给对应的mysql服务器 操作完毕后mysql返回信息给分发器 然后分发器再把... -
windows下同一台机器建立多个MYSQL服务的方法
2012-03-06 11:47:05在交易类的WEB开发中,我们经常会给用户提供一套与正式系统相一致的模拟系统,用来给用户测试之用,但是基于系统的稳定性和安全性考虑,正式系统对应的数据库和模拟系统对应的数据库最好独立运作,基于此,下面谈...