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';