JDBC连接MySQL数据库的问题

1、加载驱动

"com.mysql.jdbc.Driver" => "com.mysql.cj.jdbc.Driver"


2、连接语句

"jdbc:mysql://%s:%d/%s"+"?serverTimezone=UTC&characterEncoding=utf-8&useSSL=false"

设置参数


3、SSL连接

禁用ssl连接:useSSL=false"


1、问题:

Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

解决:

在mysql连接字符串url中加入ssl=true或者false即可,如下所示。

url=jdbc:mysql://127.0.0.1:3306/framework?characterEncoding=utf8&useSSL=true

conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jsp_db","root","123456");

这个地方改成conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/jsp_db?useUnicode=true&characterEncoding=utf-8&useSSL=false","root","123456");

useUnicode=true&characterEncoding=utf-8这一段是说编码格式为utf-8,自己可以设置eclipse的默认编码格式;

就是使用JDBC跟你的数据库连接的时候,你的JDBC版本与MySQL版本不兼容,MySQL的版本更高一些,在连接语句后加上“useSSL=‘true’” ,就可以连接到数据库了。更高版本


2、解决mysql汉字存储问题

解决mysql汉字存储问题

Windows下Mysql数据库服务的关闭和重启

net stop mysql 服务名无效解决方法:注意,Win10下以管理员身份运行cmd

怎样将Mysql注册到win服务里面去呢?

MySQL 服务无法启动。服务没有报告任何错误。

mysql无法启动 服务没有报告任何错误

MySql 5.7.14 服务没有报告任何错误的解决方法(推荐)

解决办法:MySql 5.7.14服务没有报告任何错误解决方法

(1)、到mysql安装目录下:C:\Program Files\mysql-5.7.20-winx64打开文件my.ini删掉

datadir = "C:\\Program Files\\MySQLData\\"  (安装的时候自己创建的)

my.ini文件内容为:

[mysql]

default-character-set=utf8

[mysqld]

port=3306

character-set-server=utf8

basedir ="C:\\Program Files\\mysql-5.7.20-winx64\\"

max_connections=200

character-set-server=utf8

max_allowed_packet = 32M

(2),以管理员身份运行cmd,并cd 到mysql的安装目录下,执行下面命令

C:\Program Files\mysql-5.7.20-winx64\bin>mysqld --initialize-insecure --user=mysql

mysql安装目录下会自动产生data文件夹

(3),执行net start mysql 服务成功启动

(4),mysql -u root -p进入mysql

(5),输入show variables like "%charact%";


3、中文无法存入mysql数据库

解决

(1)数据库设为utf8编码,见上图

(2)varchar字段的字符集设为utf8,可以使用Navicat for MySQL设置

utf8


4、如何让mysql的自动递增的字段重新从1开始呢?

(1) 清空所有数据,将自增去掉,存盘,在加上自增,存盘,就从1开始了

如何让mysql的自动编号从1开始

(2) truncate table 你的表名

这样不但将清除数据,而且可以重新位置identity属性的字段

不过以上都不能保留现有数据哦。

如何让mysql的自动递增的字段重新从1开始呢?

5、云端用环境配置信息中给的密码无法登陆mysql,解决办法

MySQL ERROR 1045 (28000) 错误的解决办法_Mysql

(1)找到配置文件my.ini  ,然后将其打开,可以选择用记事本打开。

(2)打开后,搜索mysqld关键字。找到后,在mysqld下面添加skip-grant-tables,保存退出。PS:若提示不让保存时,可以将该文件剪切到桌面,更改保存后再复制到mySQL目录下。

(3)关闭cmd,重新进入(如果不行就关闭远程桌面,重新进入)

(4)再次进入mysql数据库:

    查看数据库:mysql> show database;

    切换数据库:mysql> use mysql;

    查看当前数据库的数据表:mysql> use tables;

     给root用户设置新密码:mysql> update user set password=password("123456") where user="root";

     刷新数据库:mysql> flush privileges;

     退出mysql:mysql> quit;

(5)改好之后,再修改一下my.ini这个文件,把我们刚才加入的"skip-grant-tables"这行删除,保存退出再重启mysql服务就可以了。

6、相关参数设置

key_buffer_size = 16M

mysql优化的重要参数 key_buffer_size table_cache

max_allowed_packet = 1M

mysql max_allowed_packet 设置过小导致记录写入失败

table_open_cache = 64

sort_buffer_size = 512K

net_buffer_length = 8K

read_buffer_size = 256K

read_rnd_buffer_size = 512K

myisam_sort_buffer_size = 8M


猜你喜欢

转载自blog.csdn.net/wsh596823919/article/details/80719066