- 浏览: 71266 次
- 性别:
- 来自: 北京
最近访客 更多访客>>
文章分类
最新评论
-
guoapeng:
很有同感,我现在正处于人生的十字路口。
自己还是很想做技术,总 ...
程序人生的十字路口 -
xxy_aldrich:
下面我们来修改密码:
登录:如果在my ...
由于mysql对用户严格的授权机制让大家碰到了很多连接不上的问题,我这里的一点总结希望能够帮一点小忙: -
zhouzhichu:
实在谢谢你
主题: Weblogic9.详细配置 -
wxbxjxl:
本文档的叙述非常详细,总体上是比较满意该文献的。但有一点没有写 ...
主题: Weblogic9.详细配置 -
activemq:
是,你写的码??我一样的感想,。。
程序人生的十字路口
由于mysql对用户严格的授权机制让大家碰到了很多连接不上的问题,我这里的一点总结希望能够帮一点小忙:
mysql的用户连接授权是基于user+host+password的,也就是说每一个被授权的user在初始数据表mysql.user中都有记录
刚安装好的mysql初始的用户user和主机host有(null表示为空)
3.x版本:--user-----host-----password-----
root localhost null
null localhost null
root gcw null
null gcw null
4.x版本:--user-----host-----password-----
root localhost null
null localhost null
root gcw null
null gcw null
5.x版本:--user-----host-----password-----
root localhost null
null localhost null
root build null
null build null
很容易看到初始密码都是空的,很危险!!!
下面我们来修改密码:
登录:如果在mysql server的本机连接,请不要用 mysql -h本机名或者ip -u root 登录,因为你的计算机名或者ip不在初始授权组里面的host表里面,这就是为什么很多人都很无辜的说为什么自己登录不上去,除非你的计算机名就是localhost。很不幸,大多数不是,所以access denied。用这个登录: c:\mysql\bin\mysql -uroot 回车,ok了吧?现在你拥有了对整个数据库的完全操作权利。现在我们做初始工作:
---------初始化时更改口令---------
第一种方法:
shell> mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD( 'new_password ') WHERE user= 'root ';
mysql> FLUSH PRIVILEGES;
在3.22以上的版本还可以用set password 语句:set password for root=password( 'new_password ');
第二种方法:
shell> mysql -u root password new_password
注意:如果你使用第一种方法在user表里直接更新口令,你必须告诉服务器再次读入授权表(用FLUSH PRIVILEGES),因为否则改变将不被注意到。
--------增加新用户权限:-----------
你可以有2个不同的方法增加用户:通过使用GRANT语句或通过直接操作MySQL授权表。比较好的方法是使用GRANT语句,因为他们是更简明并且好像错误少些。
//GRANT语句增加新用户:
mysql> grant all privileges on *.* to new_user@new_host identified by 'new_password ' with grant option;
详细描述增加:
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost
IDENTIFIED BY 'something ' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@ "% "
IDENTIFIED BY 'something ' WITH GRANT OPTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost;
mysql> GRANT USAGE ON *.* TO dummy@localhost;
这些GRANT语句安装3个新用户:
monty
可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令( 'something '做这个。注意,我们必须对monty@localhost和monty@ "% "发出GRANT语句。如果我们增加localhost条目,对localhost的匿名用户条目在我们从本地主机连接接时由mysql_install_db创建的条目将优先考虑,因为它有更特定的Host字段值,所以以user表排列顺序看更早到来。
admin
可以从localhost没有一个口令进行连接并且被授予reload和process管理权限的用户。这允许用户执行mysqladmin reload、mysqladmin refresh和mysqladmin flush-*命令,还有mysqladmin processlist。没有授予数据库有关的权限。他们能在以后通过发出另一个GRANT语句授权。
dummy
可以不用一个口令连接的一个用户,但是只能从本地主机。全局权限被设置为 'N '--USAGE权限类型允许你无需权限就可设置一个用户。它假定你将在以后授予数据库相关的权限。
//insert语句增加新用户(不推荐):
mysql> INSERT INTO user VALUES( 'localhost ', 'monty ',PASSWORD( 'something '),
'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ')
mysql> INSERT INTO user VALUES( '% ', 'monty ',PASSWORD( 'something '),
'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ')
mysql> INSERT INTO user SET Host= 'localhost ',User= 'admin ',
Reload_priv= 'Y ', Process_priv= 'Y ';
mysql> INSERT INTO user (Host,User,Password)
VALUES( 'localhost ', 'dummy ', ' ');
mysql> FLUSH PRIVILEGES;
取决于你的MySQL版本,对上述,你可能必须使用一个不同数目 'Y '值
问题点数:20 回复次数:3
mysql的用户连接授权是基于user+host+password的,也就是说每一个被授权的user在初始数据表mysql.user中都有记录
刚安装好的mysql初始的用户user和主机host有(null表示为空)
3.x版本:--user-----host-----password-----
root localhost null
null localhost null
root gcw null
null gcw null
4.x版本:--user-----host-----password-----
root localhost null
null localhost null
root gcw null
null gcw null
5.x版本:--user-----host-----password-----
root localhost null
null localhost null
root build null
null build null
很容易看到初始密码都是空的,很危险!!!
下面我们来修改密码:
登录:如果在mysql server的本机连接,请不要用 mysql -h本机名或者ip -u root 登录,因为你的计算机名或者ip不在初始授权组里面的host表里面,这就是为什么很多人都很无辜的说为什么自己登录不上去,除非你的计算机名就是localhost。很不幸,大多数不是,所以access denied。用这个登录: c:\mysql\bin\mysql -uroot 回车,ok了吧?现在你拥有了对整个数据库的完全操作权利。现在我们做初始工作:
---------初始化时更改口令---------
第一种方法:
shell> mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD( 'new_password ') WHERE user= 'root ';
mysql> FLUSH PRIVILEGES;
在3.22以上的版本还可以用set password 语句:set password for root=password( 'new_password ');
第二种方法:
shell> mysql -u root password new_password
注意:如果你使用第一种方法在user表里直接更新口令,你必须告诉服务器再次读入授权表(用FLUSH PRIVILEGES),因为否则改变将不被注意到。
--------增加新用户权限:-----------
你可以有2个不同的方法增加用户:通过使用GRANT语句或通过直接操作MySQL授权表。比较好的方法是使用GRANT语句,因为他们是更简明并且好像错误少些。
//GRANT语句增加新用户:
mysql> grant all privileges on *.* to new_user@new_host identified by 'new_password ' with grant option;
详细描述增加:
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost
IDENTIFIED BY 'something ' WITH GRANT OPTION;
mysql> GRANT ALL PRIVILEGES ON *.* TO monty@ "% "
IDENTIFIED BY 'something ' WITH GRANT OPTION;
mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost;
mysql> GRANT USAGE ON *.* TO dummy@localhost;
这些GRANT语句安装3个新用户:
monty
可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令( 'something '做这个。注意,我们必须对monty@localhost和monty@ "% "发出GRANT语句。如果我们增加localhost条目,对localhost的匿名用户条目在我们从本地主机连接接时由mysql_install_db创建的条目将优先考虑,因为它有更特定的Host字段值,所以以user表排列顺序看更早到来。
admin
可以从localhost没有一个口令进行连接并且被授予reload和process管理权限的用户。这允许用户执行mysqladmin reload、mysqladmin refresh和mysqladmin flush-*命令,还有mysqladmin processlist。没有授予数据库有关的权限。他们能在以后通过发出另一个GRANT语句授权。
dummy
可以不用一个口令连接的一个用户,但是只能从本地主机。全局权限被设置为 'N '--USAGE权限类型允许你无需权限就可设置一个用户。它假定你将在以后授予数据库相关的权限。
//insert语句增加新用户(不推荐):
mysql> INSERT INTO user VALUES( 'localhost ', 'monty ',PASSWORD( 'something '),
'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ')
mysql> INSERT INTO user VALUES( '% ', 'monty ',PASSWORD( 'something '),
'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ', 'Y ')
mysql> INSERT INTO user SET Host= 'localhost ',User= 'admin ',
Reload_priv= 'Y ', Process_priv= 'Y ';
mysql> INSERT INTO user (Host,User,Password)
VALUES( 'localhost ', 'dummy ', ' ');
mysql> FLUSH PRIVILEGES;
取决于你的MySQL版本,对上述,你可能必须使用一个不同数目 'Y '值
问题点数:20 回复次数:3
评论
1 楼
xxy_aldrich
2009-11-26
下面我们来修改密码:
登录:如果在mysql server的本机连接,请不要用 mysql -h本机名或者ip -u root 登录,因为你的计算机名或者ip不在初始授权组里面的host表里面,这就是为什么很多人都很无辜的说为什么自己登录不上去,除非你的计算机名就是localhost。很不幸,大多数不是,所以access denied
有个疑问,我的主机名是taijisoft,mysql里的host有localhost跟build,用户名跟密码都是root,我用mysql -h localhost -u root -p root 时是可以登录的,但是用mysql -h build -u root -p root是不能登录的,报找不到这个host,想知道这个host到底是指什么?
登录:如果在mysql server的本机连接,请不要用 mysql -h本机名或者ip -u root 登录,因为你的计算机名或者ip不在初始授权组里面的host表里面,这就是为什么很多人都很无辜的说为什么自己登录不上去,除非你的计算机名就是localhost。很不幸,大多数不是,所以access denied
有个疑问,我的主机名是taijisoft,mysql里的host有localhost跟build,用户名跟密码都是root,我用mysql -h localhost -u root -p root 时是可以登录的,但是用mysql -h build -u root -p root是不能登录的,报找不到这个host,想知道这个host到底是指什么?
发表评论
-
mysql数据库名和表名的大小写敏感性问题
2007-12-05 17:22 3960mysql数据库名和表名的大小写敏感性问题 在 MySQL ... -
作者:不详 文章来源:http://www.javathinker.org/bbs/topic.jsp?db=1
2007-12-04 21:12 1889作者:不详 文章来源:http://www.javat ... -
linux 测试程序..
2007-12-04 18:11 1543# SQL Manager 2005 for MySQL 3. ... -
linux 下mysql起动的全过程
2007-12-04 14:14 4213linux 下mysql起动的全过程 CSDN Blog ... -
MySQL安装与配置-2005-07-19
2007-12-04 13:51 1318[原创] [原创]MySQL安装与配置-2005-07-19 ... -
mysql for linux
2007-12-04 13:44 1334Linux 下安装和配置 MySQL 现在有很多网站使用 L ... -
other
2007-12-03 11:46 1224网上关于linux下配置java开发环境的文章很多,但大 ... -
linux
2007-12-01 19:57 827Linux上JDK的安装 选择自 ljcao 的 Bl ... -
每日一贴..
2007-12-01 10:15 989前几天,有些问题,发 ... -
eclipse aptana
2007-11-21 14:00 1071http://dev.csdn.net/article/ ... -
ruby language
2007-09-27 21:36 1002[eiffel 翻译]Matz 关于技术的对话 注: Matz ... -
我们在开发的时候是兵马未动、粮草先行还是摸着石子过河
2007-09-14 14:24 1306兵马未动、粮草先行当然意味着我们在开发的时候先不忙着编写代码做 ... -
我国软件工程发展的现状
2007-09-14 14:15 1928很多国内搞计算机的专 ... -
关于协作与个人英雄主义
2007-09-14 13:52 1189社会进步的一个很明显的现象就是社会分工越来越细,软件的开发也不 ... -
程序员的职业道德
2007-09-14 13:25 1111程序员的职业道德
相关推荐
MySQL连接工具是数据库管理员和开发人员用来与MySQL服务器交互的重要应用程序。绿色版通常指的是免安装、便携式的版本,可以直接运行而无需在计算机上进行正式的安装过程,这对于需要在不同设备间移动工作或者不想...
本篇文章将深入探讨如何在C#中使用多线程技术连接这两种数据库,并对比它们在性能上的差异。 首先,让我们来了解C#中的多线程。多线程允许一个应用程序同时执行多个任务,提升程序的执行效率。在C#中,我们可以使用...
- **原因分析**:由于 MySQL 3.22 及以上版本不再支持 Delphi 7 的 dbExpress 组件,默认提供的 libmysql.dll 文件不兼容 Delphi 7。 #### 知识点三:解决 Delphi 7 与 MySQL 连接问题的步骤 1. **关闭相关服务**...
### 彻底解决C# ASP.NET 连接MySQL乱码问题 在开发过程中,尤其是在处理中文数据时,经常遇到的一个问题是数据库连接时出现乱码。本文将详细介绍如何彻底解决使用C# ASP.NET 应用程序连接 MySQL 数据库时出现的乱码...
Mysql则是世界上最受欢迎的开源关系型数据库管理系统之一,以其性能、稳定性和易于使用而备受青睐。将Delphi与MySQL结合,可以创建强大的数据库驱动的应用程序。下面我们将深入探讨如何在Delphi中连接MySQL数据库,...
8. **session管理**:登录成功后,通常会使用session来跟踪已认证的用户,防止未授权的访问。session在服务器端存储用户信息,直到用户注销或session超时。 这个示例对于初学者来说是一个很好的起点,它涵盖了基本...
MySQL数据库连接池是提高应用程序性能的一种重要技术,它允许开发者管理多个数据库连接并高效地复用这些连接,而不是每次需要时都创建新的连接。在C#编程中,我们可以使用自定义的连接池或者第三方库如ADO.NET的...
这里的`devc++`指的是Dev C++ IDE,`c++`是编程语言,而`mysql 库`则指用于C++连接MySQL数据库的API,通常包括libmysqlclient库。这个库提供了连接、查询、执行SQL语句等操作MySQL数据库所需的功能。 为了在Dev C++...
为了连接到MySQL数据库,我们可以使用第三方库,例如“MQLMySQL for MQL4”,这个库文件包含了连接和操作MySQL数据库所需的函数。 安装MQLMySQL库后,在MT4的MetaEditor中创建一个新的MQL4脚本或EA。在代码中,我们...
本教程将详细讲解如何使用Delphi通过SQLConnection控件实现对远程MySQL数据库的完美连接。 首先,我们需要了解SQLConnection控件。这是Delphi集成开发环境中(IDE)提供的一个标准组件,它允许开发者与各种数据库...
总的来说,“VS连接mysql数据库工具”这个主题涉及了软件开发中的多个重要环节,包括数据库连接、数据操作、项目管理等,这些都是IT专业人员日常工作中不可或缺的部分。通过深入学习和实践,你将能够更有效地利用...
总结一下,这个案例涉及了使用C#连接MySQL数据库,使用GridView展示数据,以及实现分页功能的关键步骤。通过理解这些知识点,你可以创建一个功能完备的网格视图,以有效地管理和展示数据库中的大量数据。
mysql连接时必须的,。。大家下吧,mysql连接时必须的,。。大家下吧
在嵌入式操作系统Windows CE(简称WinCE)中,连接到MySQL服务器是一项常见的任务,尤其在需要进行数据存储和检索的设备应用中。本篇将详细介绍如何在WinCE环境下使用`mysql.data.cf.dll`库来实现与MySQL服务器的...
在这个“Ajax Jsp 连接MySQL数据库”的主题中,我们将深入探讨如何在JSP页面上利用Ajax技术与后台MySQL数据库进行交互,同时处理多个Ajax请求。 首先,让我们了解基本概念。Ajax的核心是通过JavaScript向服务器发送...
MySQL多实例是指在同一台物理服务器上运行多个MySQL服务器进程,每个实例拥有自己的配置文件、数据目录和端口。 #### 多实例安装实战 多实例安装需要确保系统环境满足需求,安装必要的依赖包,设置好MySQL软件和...
这里我们将探讨如何在Android客户端通过网络连接到远程MySQL服务器,并执行相关的数据库操作。 首先,理解客户端-服务器-数据库架构至关重要。在这种模式下,Android设备作为客户端,通过HTTP或HTTPS等网络协议与...
在本文中,我们将深入探讨如何使用Qt框架连接到MySQL数据库,这是一个常见的任务,对于开发跨平台的数据库应用程序至关重要。Qt是一个强大的C++库,提供了丰富的功能来构建图形用户界面和网络应用,而MySQL则是一种...
在C#编程环境中,连接MySQL数据库通常涉及到使用特定的库,即MySQL的数据提供者——MySql.Data.dll。这个DLL文件是Oracle公司为.NET开发者提供的,用于在C#应用程序中与MySQL服务器进行交互。本篇文章将深入探讨如何...