配置server
sudo apt-get install -y mysql-server mysql-client
安装
sudo mysql -uroot -p
初始密码直接空格
进入Mysql命令行
use mysql;
update user set authentication_string='新密码' where user='root';
注意修改密码要加单引号
进行一些基本的sql操作
么的问题
IDEA驱动设置
在IDEA中使用时 mysql-connector-java-8.0.15.jar 下载超时
在项目中导入该jar依赖包
在database插件中配置驱动器
找到IDEA默认的存放驱动器的路径,将jar放在该目录下
/home/wliana/.IntelliJIdea2019.3/config/jdbc-drivers
还得下一个5.1.47版本,放在Mysql for 5.1
重新测试连接
Access denied for user ‘root‘@’localhost’
连接问题排查
可能访问权限没有开放,回到mysql 进行授权
grant all privileges on *.* to 'root' @'%' identified by 'root';
flush privileges;
然而并不是这个原因,经过好长时间多角度试探,我发觉了一个盲点…应该是密码编码转换的问题
select user, plugin from mysql.user;
root的plugin被修改成了unix_socket,用密码登陆的plugin应该是mysql_native_password
update mysql.user set plugin="mysql_native_password" where user="root";
但是这样一来我用原来的密码登不上了….应该同步更新一下密码的
/etc/init.d/mysql stop
停止服务
企图跳过授权表…:mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2 “No such file or directory”)
尝试重启:会重新生产mysqld.sock文件
成功登进去并重置了密码,但还是有同样的问题….算了,该睡觉了
感觉问题出在Linux上,因为之前的plugin是unix_socket
在Debian中软件包mysql已经替换成了mariadb了。在安装后/etc/mysql/mariadb.cnf
预设了root用户使用socket的连接方式,所以不输入密码也可在命令行直接使用mysql命令登录。
难道说IDEA用@其实是一种远程连接的形式?
修改/etc/mysql/mariadb.conf.d/50-server.cnf
中的bind-address
为允许的网络地址,若为整个网络则填入0.0.0.0
或注释掉
啊,我好像发现问题了 authentication_string = password('密码')
应该是这样才对,我之前是直接跟的一个字符串…
回到IDEA测试 连接成功!
可以直接在IDEA中进行mysql操作啦