Ubuntu 安装MySql

1. 安装

sudo apt install mysql-server
sudo apt install mysql-cient

启动服务:

windows
启动:net start mysql服务名 
停止:net stop mysql服务名

mac
启动:mysql.server start
停止:mysql.server stop

linux:
关闭mysql服务: service mysql stop  
启动mysql服务:service mysql start 
重启mysql服务:service mysql restart
查看mysql服务:service mysql status linux 系统启动服务: 开启服务:sudo systemctl start mysql 关闭服务:sudo systemctl stop mysql 重启服务:sudo systemctl restart mysql 查看服务:sudo systemctl status mysql

2. 登录 

登录:
mysql –h 主机名 -P 端口号 –u用户名 –p密码
mysql –u用户名 –p密码

刚安装的MySql不知道密码进不去,需要修改密码。没有密码怎么进呢?有两种方法:

2.1 查看debian.cnf文件

查看debian.cnf文件里的用户名和密码:

cat /etc/mysql/debian.cnf
# debian.cnf文件中
    # 用户名
    user = debian-sys-maint
    # 密码
    password = 1477bFIBdGqeEd2h

 

用debian.cnf文件中的用户名和密码登录,修改密码。

mysql -u debian-sys-maint -p 1477bFIBdGqeEd2h

# 首先进去 mysql 数据库
use mysql;

# 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

2.2 跳过密码验证

打开mysqld.cnf文件

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

在 [mysqld] 下添加:skip-grant-tables

[mysqld]
skip-grant-tables

此时不需要密码,出现输入密码时回车即可。

# 首先进去 mysql 数据库
use mysql;

# 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

此时有可能会报错:ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

跟你设置的密码安全等级有关,你可以通过如下命令进行查看:

SHOW VARIABLES LIKE 'validate_password%';

+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 8 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | MEDIUM |
| validate_password.special_char_count | 1 |
+--------------------------------------+--------+

上面便是密码强度为中级对应的各种设置。你可以按要求设置密码,也可以更改要求:

SET GLOBAL validate_password.length = 6;
SET GLOBAL validate_password.mixed_case_count = 0;
SET GLOBAL validate_password.number_count = 0;
SET GLOBAL validate_password.special_char_count = 0;

现在祖传密码123456就可以用啦

中间不成功你可能需要刷新一下flush privileges;

最后不要忘了把skip-grant-tables删除掉

3. 远程连接

1. 开放端口:

查看防火墙是否开启

sudo ufw status

开放3306端口

sudo ufw allow 3306

 

2. mysql 开放连接

修改mysql配置文件,将bind-address = 127.0.0.1注释,开放所有连接

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

重启服务

sudo systemctl restart mysql

 

3. mysql授权

允许root用户使用密码password从任何主机连接到mysql

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;

 

4. 创建用户与授权

4.1 创建用户

host 使用通配符 % 表示可以从任意远程主机登录

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

# 例子
CREATE USER 'tester'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'tester'@'192.168.1.11' IDENDIFIED BY '123456';
CREATE USER 'tester'@'%' IDENTIFIED BY '123456';
CREATE USER 'tester'@'%' IDENTIFIED BY '';
CREATE USER 'tester'@'%';

 

4.2 授权

GRANT privileges ON databasename.tablename TO 'username'@'host';

# 创建的用户还可以给别人授权
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

# 例子
GRANT SELECT, INSERT ON school.student TO 'tester'@'%';
GRANT ALL ON *.* TO 'tester'@'%';
GRANT ALL ON *.* TO 'tester'@'%'WITH GRANT OPTION;

 

4.3 撤销授权

REVOKE privilege ON databasename.tablename FROM 'username'@'host';

# 例子
REVOKE SELECT ON *.* FROM 'tester'@'%';

 

4.4删除用户

DROP USER 'username'@'host';

 

posted @ 2023-10-20 08:57  Crazy丶迷恋  阅读(10)  评论(0编辑  收藏  举报