Ubuntu 安装MySql
1. 安装
1 2 | sudo apt install mysql-server sudo apt install mysql-cient |
启动服务:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | 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<br>查看mysql服务:service mysql status linux 系统启动服务: 开启服务: sudo systemctl start mysql 关闭服务: sudo systemctl stop mysql 重启服务: sudo systemctl restart mysql 查看服务: sudo systemctl status mysql |
2. 登录
1 2 3 | 登录: mysql –h 主机名 -P 端口号 –u用户名 –p密码 mysql –u用户名 –p密码 |
刚安装的MySql不知道密码进不去,需要修改密码。没有密码怎么进呢?有两种方法:
2.1 查看debian.cnf文件
查看debian.cnf文件里的用户名和密码:
1 2 3 4 5 6 | cat /etc/mysql/debian .cnf # debian.cnf文件中 # 用户名 user = debian-sys-maint # 密码 password = 1477bFIBdGqeEd2h |
用debian.cnf文件中的用户名和密码登录,修改密码。
1 2 3 4 5 6 7 | mysql -u debian-sys-maint -p 1477bFIBdGqeEd2h # 首先进去 mysql 数据库 use mysql; # 修改密码 ALTER USER 'root' @ 'localhost' IDENTIFIED WITH mysql_native_password BY '新密码' ; |
2.2 跳过密码验证
打开mysqld.cnf文件
1 | sudo vim /etc/mysql/mysql .conf.d /mysqld .cnf |
在 [mysqld] 下添加:skip-grant-tables
1 2 | [mysqld] skip-grant-tables |
此时不需要密码,出现输入密码时回车即可。
1 2 3 4 5 | # 首先进去 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. 开放端口:
查看防火墙是否开启
1 | sudo ufw status |
开放3306端口
1 | sudo ufw allow 3306 |
2. mysql 开放连接
修改mysql配置文件,将bind-address = 127.0.0.1注释,开放所有连接
1 | sudo vim /etc/mysql/mysql .conf.d /mysqld .cnf |
重启服务
1 | sudo systemctl restart mysql |
3. mysql授权
允许root用户使用密码password从任何主机连接到mysql
1 2 | 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';
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!