一、完全卸载Mysql
- 首先用 dpkg --list | grep mysql 查看自己的mysql有哪些依赖
- 卸载mysql相关应用 apt-get remove mysql*
- 再用 dpkg --list|grep mysql 查看,还剩什么就卸载什么
-
最后清除残留数据:
dpkg -l | grep ^rc | awk '{print $2}' | sudo xargs dpkg -P
-
保险起见再执行以下命令:
apt-get remove mariadb-client
apt-get autoremove mariadb-client
apt-get remove mariadb-server
apt-get autoremove mariadb-server
如果提示没有安装所以不用删除说明删干净了
二、安装Mariadb
这里因为kali的版本没有mysql的包,所以来安装Mariadb
apt-get install mariadb-client-10.3
apt-get install mariadb-server-10.3
如果不指定版本安装的就是最新的
之后输入vim /etc/mysql/my.cnf,添加以下内容:
[client-server]
port=3306
socket=/tmp/mysql.sock
[mysql]
#default-character-set=utf8
[mysqld]
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/mysql
character-set-server=utf8
tmpdir=/tmp
:wq! 保存
然后配置mysql开机自启动, sudo systemctl enable mysql
启动mysql, service mysql start
三、配置Mariadb数据库
- 命令行下输入mysql ,进入Mariadb命令行界面
- show databases;
- use mysql
- show tables;
- desc user;
- select User, Host, Password from user;
- 为root用户设置密码 update user set Password=password('123456') where User='root';
- flush privileges;
- Ctrl + D退出Mariadb命令行,验证密码是否设置成功
- mysql -u root -p
- Mariadb用户权限与管理【转】MariaDB/MySQL用户和权限管理
四、Mariadb密码无效
在新版的Mariadb安装过程中没有设置密码的过程了,而在命令行你发现直接用mysql就可以登录数据库,完全不用密码,然而你用其他的mysql管理工具使用密码无论如何都会提示 Access denied for user ‘root’@‘localhost’ 。
Mariadb在5.2.0以后的版本默认不再使用密码认证了,改用Authentication Plugin - Unix Socket插件认证。具体参考https://mariadb.com/kb/en/library/authentication-plugin-unix-socket/
##解决方法:
虽然这是为了提高安全性,但有的地方我们必须使用密码认证登录,因此我们就要修改验证为密码的方式。直接在命令行输入 mysql 登录数据库。使用以下命令修改
use mysql;
update mysql.user set plugin='mysql_native_password' where User='root';
flush privileges;