之前按照网上的方法安装了mysql 但是 mysql -uroot -p 输入密码后老是报错
ERROR 1698 (28000): Access denied for user 'root'@'localhost
后来在网上找了好多方法,发现并不能解决我的问题,折腾了好久发现 命令前要加 sudo
命令为
sudo mysql -uroot -p 密码
一、中途重装过几次mysql归纳一下
注:该方法是彻底删除ubuntu下面的文件,然后重新安装,更新root密码,所以mysql原数据会被删掉,所以记得备份
- 命令apt-get删除mysql
sudo apt-get remove --purge mysql-\*
- 手动删除mysql剩余文件
sudo find / -name mysql -print
会显示出所有的含有mysql文件名的路径,如下:
/var/lib/mysql
/var/lib/mysql/mysql
/var/log/mysql
/usr/bin/mysql
/usr/lib/mysql
/usr/share/mysql
/etc/mysql
/etc/init.d/mysql
- 再执行
sudo rm -rf /ect/init.d/mysql
删除工作已经完成了接下来重新安装
- 安装mysql
sudo apt-get install mysql-server
- 测试是否安装成功
ps aux|grep mysqld
将会看到如下则表示成功
mysql已经安装完成了,正常输入命令 sudo mysql -uroot -p 密码。(不知道我的为什么必须加sudo)
二、如何让外部系统(如:window系统、mac系统)访问内部系统(虚拟机中安装的Ubuntu)的mysql 数据库。
默认情况下是没法实现的,操作步骤如下:
- 在 虚拟机Ubuntu系统的控制台输入命令
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
如果报错一般是vim没有安装按照提示先安装即可。成功如下图所示
bind-address = 127.0.0.1配置默认是在本地启动,外部是连接不进来的。
- 修改bind-address = 127.0.0.1 对外部进行监听
按键盘 i 键,让vim编辑器可以插入
改 127.0.0.1 为 0.0.0.0
按键盘esc键 输入 :wq回车保存并退出
- 重启mysql服务
sudo service mysql restart
在可以通过 ps aux|grep mysqld 看一下是否重启成功
- 查看Ubuntu 的ip地址
ifconfig
- 在外部系统登录 Navicat 软件 试着进行连接 Ubuntu 的ip地址
注意 主机名或IP地址写Ubuntu 的ip地址
连接测试发现报错,还是无法连接。是因为mysql没有授权
- mysql 设置权限
修改权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
刷新权限
flush privileges;
7.再次使用 外部系统登录 Navicat 软件 试着进行连接 Ubuntu 的ip地址 发现成功, 账户 root 密码root
外部系统 连接 虚拟机Ubuntu的mysql数据库连接成功了。