mysql压缩包如何使用及PoolableConnectionFactory 和Access denied for user 'testdb'@'localhost'问题的解决
2016-01-27 16:33
751 查看
mysql.zip绿色软件压缩包下载后,如何使用
1.解压缩,如这里的路径是在E:\BaiduYunDownload\mysql-5.6.28-winx64。解压缩后需要设置一下my.ini配置文件,设置客户端服务端默认字符集,基准路径、数据路径等
[mysql]
default-character-set=utf8
[mysqld]
# set basedir to your installation path
basedir=E:/BaiduYunDownload/mysql-5.6.28-winx64
#set datadir to the location of your data directory
datadir = E:/BaiduYunDownload/mysql-5.6.28-winx64/data
#set default charset
character-set-server = utf8
2.将bin路径加入到环境变量path后面,(不要覆盖前面内容)E:\BaiduYunDownload\mysql-5.6.28-winx64\bin ,中间用分号隔开
3.启动服务测试一下,在命令行中,如果没有将环境变量加入到path后面,需要在命令行中进入到解压目录下;如果加入到环境变量path中后,可以直接输入
mysqld --console
(关闭服务的指令如下) mysqladmin -u root shutdown
4.这里也可以吧mysql安装成服务,以让mysql自动启动 :mysqld --install
5.绿色版的mysql解压缩后,到这里假设你的mysql服务正常启动了,一般登录的话,root该种情形下是没有密码的,或者默认密码(但是不知道是啥),可以登录修改
mysql -u root -p //登录
这时如果你要更改或者是给root更改密码,可能会出现deny access ....root@localhost的提示,现在虽然是以root登录,但是没有输入密码,相当于
是以user权限表里的匿名用户登录的,需要你具有相应的权限才会让你进行操作。那么下面我们给root创建密码。
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'。错误
这里可以用:
mysqld_safe--skip-grant-table //屏蔽权限,如果不识别mysqld_safe ,可以用mysql --skip-grant-table
//上面执行成功回启动一个线程,然后需要重新打开一个cmd的终端####################注意
//#新开一个终端
mysql -u root mysql
update user set password =password('123456') where user='root' //给root新添加的123456密码
flush privileges; //对于对于权限更改或者新添加的用户,需要对于权限刷新,同时之前开的终端不要关闭,不然会出错
\q //退出sql
这这里修改成功,登陆后可以看到相应的之前创建的数据库等内容,其他操作都可以。
6.新创建用户testdb(密码123456)和数据库test,并赋予权限于test数据库
mysql> create database test; //已经存在的话就可以直接使用
mysql> grant all on test.* to testdb identified by '123456'
会自动创建用户testdb,这里创建的用户在访问是,可以
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test" />
<property name="username" value="root" />
<property name="password" value="123456" />
因为创建的账户没有带localhost ,127.0.0.1, %等指示,因此访问的URL,可能会提示Access denied for user 'testdb'@'localhost' (using password: YES),
yes代表已经有密码,NO的话没有密码。此处带有YES说明可能是你创建的账户的权限方面的问题,如不能使用localhost,应该使用你本机的IP,
这通过select * from user;查看testdb用户的IP方面的权限是%,说明应该使用本机的IP,如192.168.1.150。如果查询root,则显示一个是
localhost,另外一个是127.0.0.1,第三个是 ::1,因此用root账户则可以使用jdbc:mysql://localhost:3306/test这样的url.
注意:如果driver可以向server发送数据包,但是却没有返回数据,可能是服务器端问题,也可能是这里的URL等内容写的有问题,就如我这里写成了
3308端口,而在sql那个地方命名是3306,因此在写web程序是总是can not create poolxxxFactory的内容,见8。
一般的mysql默认的是本地主机是localhost,对应的IP地址就是127.0.0.1,所以你用你的IP地址登录会出错,如果你想用你的IP地址登录就要先进行授权用grant命令。
mysql>grant all on *.* to root@202.116.39.2 identified by "123456"; 但是之前并没有给指定@,却不知为什么是本主机IP,加上@localhost则确实可以。
这里则是对于某一个IP地址下root用户赋予权限。
7.然后这里可以建表,执行增删改查等操作了。
8.错误:16:21:54,872 ERROR SqlExceptionHelper:144 - Cannot create PoolableConnectionFactory (Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.)
16:21:56,891 ERROR SqlExceptionHelper:144 - Cannot create PoolableConnectionFactory (Communications link failure
这里大多时候是相应的URL或者这些参数写错了某一个地方,可以写个简单的JDBC连接测试一下,对于这里我是在SQLSERVER2005下遇到了该类似问题,mysql下面还是有144的这个错误,sqlserver2005是把密码给设置错了,mysql则是把URL的端口号给写错了。
9.Access denied for user 'testdb'@'localhost' (using password: YES),这是遇到的另一个问题,则是创建的用户对于URL中localhost的没有访问权限,创建用户的出的问题。可以参考6,带上@指定localhost,127.0.0.1,或者是IP地址等,赋予相应操作的权限。
1.解压缩,如这里的路径是在E:\BaiduYunDownload\mysql-5.6.28-winx64。解压缩后需要设置一下my.ini配置文件,设置客户端服务端默认字符集,基准路径、数据路径等
[mysql]
default-character-set=utf8
[mysqld]
# set basedir to your installation path
basedir=E:/BaiduYunDownload/mysql-5.6.28-winx64
#set datadir to the location of your data directory
datadir = E:/BaiduYunDownload/mysql-5.6.28-winx64/data
#set default charset
character-set-server = utf8
2.将bin路径加入到环境变量path后面,(不要覆盖前面内容)E:\BaiduYunDownload\mysql-5.6.28-winx64\bin ,中间用分号隔开
3.启动服务测试一下,在命令行中,如果没有将环境变量加入到path后面,需要在命令行中进入到解压目录下;如果加入到环境变量path中后,可以直接输入
mysqld --console
(关闭服务的指令如下) mysqladmin -u root shutdown
4.这里也可以吧mysql安装成服务,以让mysql自动启动 :mysqld --install
5.绿色版的mysql解压缩后,到这里假设你的mysql服务正常启动了,一般登录的话,root该种情形下是没有密码的,或者默认密码(但是不知道是啥),可以登录修改
mysql -u root -p //登录
这时如果你要更改或者是给root更改密码,可能会出现deny access ....root@localhost的提示,现在虽然是以root登录,但是没有输入密码,相当于
是以user权限表里的匿名用户登录的,需要你具有相应的权限才会让你进行操作。那么下面我们给root创建密码。
ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'。错误
这里可以用:
mysqld_safe--skip-grant-table //屏蔽权限,如果不识别mysqld_safe ,可以用mysql --skip-grant-table
//上面执行成功回启动一个线程,然后需要重新打开一个cmd的终端####################注意
//#新开一个终端
mysql -u root mysql
update user set password =password('123456') where user='root' //给root新添加的123456密码
flush privileges; //对于对于权限更改或者新添加的用户,需要对于权限刷新,同时之前开的终端不要关闭,不然会出错
\q //退出sql
这这里修改成功,登陆后可以看到相应的之前创建的数据库等内容,其他操作都可以。
6.新创建用户testdb(密码123456)和数据库test,并赋予权限于test数据库
mysql> create database test; //已经存在的话就可以直接使用
mysql> grant all on test.* to testdb identified by '123456'
会自动创建用户testdb,这里创建的用户在访问是,可以
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test" />
<property name="username" value="root" />
<property name="password" value="123456" />
因为创建的账户没有带localhost ,127.0.0.1, %等指示,因此访问的URL,可能会提示Access denied for user 'testdb'@'localhost' (using password: YES),
yes代表已经有密码,NO的话没有密码。此处带有YES说明可能是你创建的账户的权限方面的问题,如不能使用localhost,应该使用你本机的IP,
这通过select * from user;查看testdb用户的IP方面的权限是%,说明应该使用本机的IP,如192.168.1.150。如果查询root,则显示一个是
localhost,另外一个是127.0.0.1,第三个是 ::1,因此用root账户则可以使用jdbc:mysql://localhost:3306/test这样的url.
注意:如果driver可以向server发送数据包,但是却没有返回数据,可能是服务器端问题,也可能是这里的URL等内容写的有问题,就如我这里写成了
3308端口,而在sql那个地方命名是3306,因此在写web程序是总是can not create poolxxxFactory的内容,见8。
一般的mysql默认的是本地主机是localhost,对应的IP地址就是127.0.0.1,所以你用你的IP地址登录会出错,如果你想用你的IP地址登录就要先进行授权用grant命令。
mysql>grant all on *.* to root@202.116.39.2 identified by "123456"; 但是之前并没有给指定@,却不知为什么是本主机IP,加上@localhost则确实可以。
这里则是对于某一个IP地址下root用户赋予权限。
7.然后这里可以建表,执行增删改查等操作了。
8.错误:16:21:54,872 ERROR SqlExceptionHelper:144 - Cannot create PoolableConnectionFactory (Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.)
16:21:56,891 ERROR SqlExceptionHelper:144 - Cannot create PoolableConnectionFactory (Communications link failure
这里大多时候是相应的URL或者这些参数写错了某一个地方,可以写个简单的JDBC连接测试一下,对于这里我是在SQLSERVER2005下遇到了该类似问题,mysql下面还是有144的这个错误,sqlserver2005是把密码给设置错了,mysql则是把URL的端口号给写错了。
9.Access denied for user 'testdb'@'localhost' (using password: YES),这是遇到的另一个问题,则是创建的用户对于URL中localhost的没有访问权限,创建用户的出的问题。可以参考6,带上@指定localhost,127.0.0.1,或者是IP地址等,赋予相应操作的权限。
相关文章推荐
- mysql按字段分组并获取每个分组按照某个字段排序的前三条
- mysql安装
- MySQL与其它主流数据库比较
- 报错:1130-host ... is not allowed to connect to this MySql server
- MySQL硬件资源利用特点
- Mysql数据库优化总结
- mysql数据库 复制一条记录到另外一张表中 本来为null的datatime字段,复制到另一张表中变为了0000-00-00 00:00:00
- Mysql 不存在则插入,存在则更新
- WeChall mysql WriteUp
- mysql 中检查表是否损坏以及修复表
- 分别在MS-DOS和MySQL Command Line Client编写sql语句
- 基于mysql中一些易混淆知识点总结
- scala 连接 mysql
- Mysql怎样取消错误命令
- Win7-64位PowerDesigner下MySQLODBC驱动问题
- hibernate调用mysql存储过程
- mysql explain 的type解释
- mysql5.6.13通用二进制格式安装并使用amoeba实现对mysql5.6数据库读写分离
- MySql中的变量定义
- mysql5.6.13通用二进制格式安装并使用amoeba实现对mysql5.6数据库读写分离