一切都从Tableau无法连接Mysql开始说起
第一个bug:没有访问权限
原因:Mysql的驱动程序要与tableau的版本尽可能的相对应,否则匹配不了,比如64位的系统,数据库驱动却是32位的
解决方法:(本系统为Win11)
-
打开控制面板,将右上角类别改为大图标
-
找到windows工具,打开,选择ODBC数据源
-
选择添加
-
找到符合版本的驱动安装程序
如果没有适合的版本,去官网下载,选择符合本机位数的版本
测试成功然后确定就可以了
第二个bug:mysql免密登录与重置密码
本来是没有这个问题的,但是因为第一个bug用了错误的解决方法再加上手滑,导致了这个问题
解决方法:
-
首先进入到Mysql的根目录,然后停止mysql服务
net stop mysql
提示服务名无效
因为没有将此服务注册到mysql中去,输入
mysqld install
然后输入
mysqld --console --skip-grant-tables --shared-memory
(这条语句适用8.0及以上版本), 8.0以下版本为mysqld--skip-grant-tables
-
这时又发生了报错:
应该是data文件出了问题
接着输入
mysqld --initialize-insecure
然后我们尝试
net start mysql
重启服务器,若成功,再net stop mysql
关闭服务器,重新输入mysqld --console --skip-grant-tables --shared-memory
若此时弹出的窗口没有ERROR字符时,说明问题解决了,若还是有问题,参考下面博客: 报错解决(一)MySQL_Sinda-CSDN博客
这下没有错误了
-
此DOS窗口已经动不了了,再开一个窗口,cd到mysql根目录下
然后输入熟悉的
mysql -uroot -p
,然后提示输入密码,无视他,直接回车,就能被Welcome啦 -
继续,依次输入以下代码
use mysql;
update user set authenication_string = '' where user = 'root';
quit;
-
最后,重中之重(更改登陆密码)
首先,关闭第一个窗口
然后,我们在第二个窗口检查有没有停止掉刚才停止的mysql服务,然后重新打开(
net stop / start mysql
)再然后,在mysql根目录中输入我们熟悉的语句
mysql -uroot -p
,再次无视密码进入(可以成功,因为已经是无密码了)再再然后,输入
ALTER USER 'root'@'localhost' IDENTIFIED BY
'你的新密码'
最最后,我们再次进入mysql中验证新密码,成功就可以了。