老公晚上不睡觉,原来是禅道的数据库问题,如今我把它整理出来了

首先我们要知道,windows版本的禅道是自己有数据库

通过安装目录结构,我们发现:
老公晚上不睡觉,原来是禅道的数据库问题,如今我把它整理出来了_第1张图片

内部自带apache、php以及mysql

通过start.exe启动,即可,后台会根据端口占用情况自动选择空闲的端口

数据库存放的位置

老公晚上不睡觉,原来是禅道的数据库问题,如今我把它整理出来了_第2张图片
本地就可以访问了。

如何实现远程访问禅道的数据库?

错误一:ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)

我们发现mysql数据库中没有user表
老公晚上不睡觉,原来是禅道的数据库问题,如今我把它整理出来了_第3张图片
但是却可以select * from user
其实user表在视图位置!
在这里插入图片描述
然后通过下面更改

SELECT User, Host FROM mysql.user;

老公晚上不睡觉,原来是禅道的数据库问题,如今我把它整理出来了_第4张图片
显示的root为localhost本地登录,修改命令如下:

grant all privileges on *.* to 'root'@'%' identified by '12345678' with grant option;

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
flush privileges;

之后再次使用select查看用户:
老公晚上不睡觉,原来是禅道的数据库问题,如今我把它整理出来了_第5张图片
正常情况下,应该就可以远程访问了,但是恰恰有时候不行。
出现错误二,如下

错误二:Navicat连接mysql - Can’t connect to MySQL server on ’ '(10038)

打开mysql配置文件vi /etc/mysql/mysql.conf.d/mysqld.cnf
将bind-address = 127.0.0.1 注释 #windows下也一样,记得要把这个注释掉

如何更改user表远程访问的密码?

修改xampp中的mysql的密码报错,: Column ‘Password’ is not updatable

使用set 更新即可,在禅道中使用禅道自带的mysql更新有问题

错误一:使用update语句修改密码报错:ERROR 1348 (HY000): Column ‘Password’ is not updatable
在这里插入图片描述

错误二:使用如下命令修改密码,并没有效果:

在这里插入图片描述

错误三:使用ALTER语句:

ALTER USER 'root'@'localhost' identified by '123456';

flush privileges; // 刷新权限

好像也没用。

最后通过set更改成功

set password for 'root'@'localhost'=password('123456'); 
flush privileges;

在这里插入图片描述

最后补充一下,如何更改root密码

mysql如何修改root用户的密码

方法1: 用SET PASSWORD命令
首先登录MySQL。

格式:mysql> set password for 用户名@localhost = password('新密码'); 
例子:mysql> set password for root@localhost = password('123'); 

方法2:用mysqladmin

格式:mysqladmin -u用户名 -p旧密码 password 新密码 
例子:mysqladmin -uroot -p123456 password 123 

方法3:用UPDATE直接编辑user表
首先登录MySQL。

mysql> use mysql; 
mysql> update user set password=password('123') where user='root' and host='localhost'; 
mysql> flush privileges; 

方法4:在忘记root密码的时候,可以这样
以windows为例:

1. 关闭正在运行的MySQL服务。 
2. 打开DOS窗口,转到mysql\bin目录。 
3. 输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。 
4. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。 
5. 输入mysql回车,如果成功,将出现MySQL提示符 >6. 连接权限数据库: use mysql;6. 改密码:update user set password=password("123") where user="root";(别忘了最后加分号) 。 
7. 刷新权限(必须步骤):flush privileges; 。 
8. 退出 quit。 
9. 注销系统,再进入,使用用户名root和刚才设置的新密码123登录。

注意:

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; 新版只能用这个,注意单引号不可删除
方法3那个password可能过时了,新版mysql需要 
update mysql.user set authentication_string= authentication_string('root') where user='root' ;

你可能感兴趣的:(mysql,禅道数据库,禅道数据库远程,xampp)