分类: 数据库开发技术
2010-12-14 14:11:03
备注:
Add a login user and group for ‘mysqld’ to run as:为‘mysqld’增添一个登陆用户和组
shell> groupadd mysql
shell> useradd -g mysql mysql
Configure the release and compile everything:配置和编译
shell> ./configure --prefix=/usr/local/mysql
--prefix后面指示了默认安装路径
shell> make
如果还想知道更详细的configure命令,请查阅manual for configure
If you want to set up an option file, use one of those present in
the ‘support-files’ directory as a template. For example:如果你想安装选项文件,使用当前存在的‘support-files’ 文件夹下的作为模板,例如:
shell> cp support-files/my-medium.cnf /etc/my.cnf
If you haven`t installed MySQL before, you must create the MySQL
grant tables:如果你以前没有安装过MySQL,你必须创建一个MySQL准许的表
shell> bin/mysql_install_db --user=mysql
Change the ownership of program binaries to ‘root’ and ownership
of the data directory to the user that you will run ‘mysqld’ as.
Assuming that you are located in the installation directory
(‘/usr/local/mysql’), the commands look like this:将程序的所有权限给‘root’ ,并且把数据目录的所有权给可以运行‘mysqld’的用户。假设MySQL的安装目录是(‘/usr/local/mysql’),命令如下所示:
shell> chown -R mysql var
shell> chgrp -R mysql .
The first command changes the owner attribute of the files to the ‘root’ user. 第一行命令把文件拥有权给‘root’。The second changes the owner attribute of the data directory to the ‘mysql’ user. 第二行把数据目录拥护权给‘mysql’用户。The third changes the group attribute to the ‘mysql’ group.第三行把组的权限给‘mysql’组。
After everything has been installed, you should initialize and test your distribution using this command:万事具备后,你就可以按照下面的命令测试并运行你的MySQL了:
shell> /usr/local/mysql/bin/mysqld_safe --user=mysql &
第一种方法: 推荐
错误描述: Mysql中添加用户之后可能出现登录时提示ERROR 1045 (28000): Access denied for user的错误.
原因分析: 在mysql.user表中可能出现user为空的记录,如:
mysql> select host,user from user;
+------------------+------+
| host | user |
+------------------+------+
| % | test |
| localhost | |
| localhost | root |
+------------------+------+
3 rows in set (0.00 sec)
解决 办法: 删除这些为空的用户或者更新为其他用户名
删除user.user中值为NULL的,或更新NULL为test
1)delete from user where user is NULL
2)update user set user='test' where user is NULL
意外的情况: 如果上述方法没有效果,依然出现空用户,则可以利用图形化用户client删除.
第二种方法:linux下
开场白:解决LINUX问题是一种乐趣,当然,能遇到问题就是上天赐的享受幸福的机会。
这次使用的是Mandriva2008spring。
因为要搞一个项目,所以需要安装MySql,以往安装MySql都是非常顺利的,尤其MySql提供的rmp包,只需双击下就可以搞定~但不知道什么时候,MYSQL ERROR 1045 (28000): Access denied for user (using password: YES),这个拒绝访问问题变得非常广泛。
百度了一下,没有现成的解决方法,唯有找出其问题所在了。
解决问题思路:
第一步,先使用跳过受权表访问,命令如下:mysqld_safe --user=mysql --skip-grant-tables --skip-networking & (当然,在这之前,先停止mysql服务的运行)。
第二步,mysql -uroot mysql 登录mysql。
第三步,访问mysql数据库下的user表。在我的机器上,mysql> select * from user; 得到的,竟然是
Empty set (0.00 sec)。这说明了,我的mysql没有任何可以访问的用户。知道了这问题所在,解决起来就简单了。
第四步,mysql> INSERT INTO user(host, user, password, select_priv, insert_priv, update_priv) VALUES ('localhost', 'username', PASSWORD(‘yourpassword'), 'Y', 'Y','Y');
Query OK, 1 row affected, 3 warnings (0.00 sec)
返回成功,没问题。嘿嘿~~~就这么简单。
第五步,测试,再重启下mysql服务,正常登录,成功!!!
提示:mysql系统中的mysql数据库,存储的是系统数据,像这里的user表存储的是用户信息及其访问权限,还有其他,例如你要新建一个数据库mydb,这数据库有用户me管理的话,mysql数据库里面的db表就会存储相关信息。废话步多说了。
下面是windows 的解决方法:
但如果我们用虚拟主机管理系统开启的用户,而且用户数比较多的时候,好像也不是好办法。
我使用重新安装了mysql,然后进入虚拟主机,逐个删除,重新开数据库,操作之前一定要备份好原来的data目录,最后覆盖下空间数据库就可以了。
chinaunix网友2010-12-15 15:29:01
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com