sudo apt purge mysql-*
sudo rm -rf /etc/mysql/ /var/lib/mysql
sudo apt autoremove
sudo apt autoclean
apt-get purge 与 apt-get remove是不同的,简单来说:
可根据需要选择下面mysql常用包进行安装
sudo apt-get install mysql-server -y #mysql 服务端
#sudo apt install mysql-client -y #mysql 客户端
#sudo apt install libmysqlclient-dev -y #mysql 开发包
安装过程中如果没有报错信息,安装完成后,会自动启动mysql服务
方法有多种。常用如下:
如下图则启动成功
ubantu下可以直接用service命令查看服务运行状态,类似如下
如果未启动,则运行启动命令
解决方法参考如下:
(MySQL 8, WSL 2) su: warning: cannot change directory to /nonexistent: No such file or directory · Issue #256 · miguelgrinberg/microblog · GitHub
sudo service mysql stop #先停止服务
sudo usermod -d /var/lib/mysql/ mysql #为 mysql 用户创建一个主目录
sudo service mysql start #然后再启动
成功启动
前提是在本地安装mysql 客户端( sudo apt install mysql-client -y #mysql 客户端)
mysql -u用户 -p密码
输入mysql -uroot -p 来登录root账号,不需要输入root密码。直接回车即可。
需要输入root密码的情况。但是,我们第一登录,并没有设置root用户的密码。
1、我们需要先找到默认的用户密码
sudo cat /etc/mysql/debian.cnf
2、用上面查到的默认的 user和 password 来登录
mysql -udebian-sys-maint -pRkqm8f6NHv1CYsrB
3、设置root密码
mysql>use mysql;
mysql>flush privileges;
mysql>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
mysql>flush privileges;
如下设置root@localhost密码为root
需要用户有远程访问权限
use mysql; #切换到mysql
select user,host from user; #查看user列表
如下图例子:
通过命令可以看到当前只有一个用户root,并且Host为localhost,即只能本地访问权限
查看用户列表
select user, host,authentication_string, plugin from user;
创建:CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';
在实际应用中,我们应避免明文指定密码,可以通过 PASSWORD 关键字使用密码的哈希值设置密码。
如下:
#test1用户密码为test1
#可先通过sql语句查看test1串的哈希值的,然后再设置密码为这个哈希值
SELECT password('test1');
CREATE USER 'test1'@'主机名' IDENTIFIED BY 'test1的哈希值';
方法一:直接改表
update user set host='%' where user='用户名';
顾名思义,该方法就是直接修改更改"mysql"数据库里的"user"表里的"host"项,从"localhost"改为"%"
方法二:授权账户
通过GRANT命令可以授予主机远程访问权限(GRANT的详细用法,不在这里讲)
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
--赋予任何主机访问权限:%
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'172.16.16.10' IDENTIFIED BY '密码' WITH GRANT OPTION;
--允许指定主机(IP地址)访问权限:具体ip 172.16.16.10
FLUSH PRIVILEGES;
--刷新权限表使上述更改生效
在同一个网段,以上操作都没问题,但还是不能连接的情况,需要更改配置文件
1、打开 mysqld.cnf
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
2、找到bind-adderss = 127.0.0.1这行并注释掉。
bind-adderss = 127.0.0.1 改为如下:
#bind-adderss = 127.0.0.1
3、后重启mysql服务
sudo service mysql restart
出于安全考虑,尤其是正式环境下
正式环境中,推荐通过创建mysql用户并给对应的用户赋权的形式来开放远程服务权限,并制定ip地址,赋权时根据用户需求,在GRANT命令中只开放select、update等权限,做到权限粒度最小化。