当前位置: 首页 > news >正文

Ubuntu 下 MySQL 安装与配置全攻略:从入门到精通

🚀 Ubuntu 下 MySQL 安装与配置全攻略:从入门到精通 🌟

简介:MySQL 是目前最流行的开源关系型数据库之一,广泛应用于各种项目中。本文将带你从零开始安装 MySQL,并详细介绍如何进行基本操作、用户管理、远程访问设置以及数据导出导入等高级功能。无论你是初学者还是有一定经验的开发者,都能从中受益匪浅!💪


目录

  1. 安装 MySQL
  2. 修改 MySQL 密码(首次登录)
  3. 基本操作
  4. 解决新版本(8.0+)常见问题
  5. 允许外网连接 MySQL
  6. 开启远程登录权限
  7. 导出/导入 MySQL 数据库
  8. 总结

安装 MySQL

在 Ubuntu 系统中,安装 MySQL 非常简单,只需一条命令即可完成:

sudo apt-get install mysql-server

在这里插入图片描述

安装完成后,可以通过以下命令检查 MySQL 服务状态:

sudo systemctl status mysql

在这里插入图片描述

查看mysql版本号

mysql -V

在这里插入图片描述


修改 MySQL 密码(首次登录)

1. 查看默认密码

sudo cat /etc/mysql/debian.cnf

记下 password 字段的值。
在这里插入图片描述

2. 登录 MySQL

mysql -u debian-sys-maint -p

输入上一步获取的密码。
在这里插入图片描述

3. 修改密码

对于 MySQL 5.7 及以下版本:
use mysql;
update mysql.user set authentication_string=password('ubuntu123') where user='root' and Host ='localhost';
update user set plugin="mysql_native_password";
flush privileges;
quit;
对于 MySQL 8.0 及以上版本:

新版本的Mysql中password函数被弃用,取而代之的是ALTER USER语句

use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'ubuntu123';
update user set plugin="mysql_native_password";
flush privileges;
quit;

在这里插入图片描述

4. 重启 MySQL 服务

sudo service mysql restart

测试新密码[ubuntu123]是否生效:

mysql -u root -p

在这里插入图片描述

基本操作

查看所有数据库

show databases;

使用指定数据库

use mysql;

查看数据库中的表

show tables;

查看表内容

select * from sys_usr;

插入数据

insert into sys_usr values(1, 'admin');

解决新版本(8.0+)常见问题

如果你使用的是 MySQL 8.0 及以上版本,在执行 show databases; 时可能会遇到报错(如错误代码 1499)

ERROR 1449 (HY000): The user specified as a definer ('mysql.infoschema'@'localhost') does not exist

在这里插入图片描述

以下是解决方案:

创建用户并授权

--创建用户:
create user 'mysql.infoschema'@'%' identified by '{密码}';
--用户授权:
grant all privileges on *.* to 'mysql.infoschema'@'%';
--刷新授权:
flush privileges;

在这里插入图片描述

注意'@' '%' 表示授权所有用户。


允许外网连接 MySQL

默认情况下,MySQL 只允许本地连接。如果需要外网访问,请按以下步骤操作:

1. 检查端口状态

netstat -ntlp | grep -v tcp6

在这里插入图片描述

2. 修改配置文件

查找配置文件位置
sudo find / -name mysqld.cnf

在这里插入图片描述

MySQL 5.7 版本:

编辑 /etc/mysql/mysql.conf.d/mysqld.cnf 文件,将 bind-address = 127.0.0.1 修改为:

bind-address = 0.0.0.0
MySQL 5.7 以前版本:

编辑 /etc/mysql/my.cnf 文件,同样将 bind-address = 127.0.0.1 修改为:

bind-address = 0.0.0.0

3. 重启 MySQL 服务

sudo service mysql restart

验证端口状态:

netstat -ntlp | grep -v tcp6

在这里插入图片描述


开启远程登录权限

mysql安装完成后,默认是不能远程登陆的,只能在本地用localhost 或者127.0.0.1登录访问,如果需要远程登录,则需要修改mysql设置

1. 【本地】登录 MySQL

mysql -u root -p

2. 查看当前权限设置

use mysql;
select host, user from user;

在这里插入图片描述

3. 修改 root 用户权限

update user set host = '%' where user = 'root';

如果报错,可以尝试:

update user set host = "%" where user = "root";

在这里插入图片描述

验证当前权限设置:

select host, user from user;

在这里插入图片描述

4. 刷新权限设置,即可远程登录

FLUSH PRIVILEGES;

在这里插入图片描述


导出/导入 MySQL 数据库

导入数据库

  1. 登录 MySQL:
    mysql -u root -p
    
    在这里插入图片描述
  2. 并创建目标数据库:
    CREATE DATABASE face_recognition;
    use face_recognition;
    
    在这里插入图片描述
  3. 导入 SQL 文件:
    source /home/ubuntu/face_recognition.sql;
    
    在这里插入图片描述

导出数据库

  1. 登录 MySQL:

    mysql -u root -p
    

    在这里插入图片描述

  2. 查看数据库名称:

    show databases;
    

在这里插入图片描述

  1. 退出 MySQL:
  • 方式一:

    exit    
    

    在这里插入图片描述

  • 方式二:

    quit
    

    在这里插入图片描述

  1. 导出指定数据库:
    mysqldump -u root -p face_recognition > face_recognition.sql
    

总结

通过本文,我们详细介绍了如何在 Ubuntu 系统中安装和配置 MySQL,并解决了常见的问题,包括新版本兼容性、密码修改、外网访问设置以及数据导出导入等。希望这些内容能够帮助你更好地掌握 MySQL 的使用技巧!🎉


常用命令速查表

功能命令
安装 MySQLsudo apt-get install mysql-server
查看数据库show databases;
使用数据库use database_name;
查看表show tables;
插入数据insert into table_name values(...);
修改 MySQL 密码ALTER USER 'root'@'localhost' ...
允许外网连接修改 mysqld.cnf 中的 bind-address
导出数据库mysqldump -u root -p db_name > file.sql
导入数据库source /path/to/file.sql;

参考博客

  • 首次登录mysql未设置密码或忘记密码解决方法_子非 。的博客-CSDN博客

  • Mysql5.7升级8.0登录后查询数据库报1499错误 – 源码巴士 (code84.com)

  • ubuntu 安装mysql并设置密码 - 深水是沉默 - 博客园 (cnblogs.com)

  • ubuntu(同mac)中 导出/导入MYSQL数据库的所有表到本地(sql后缀的文件) - 简书 (jianshu.com)

  • message from server: “Host is not allowed to connect to this MySQL server“问题的解决办法_Julia_up的博客-CSDN博客

🌟 如果你觉得这篇文章对你有帮助,请点赞支持一下哦!💬 有任何疑问或建议,欢迎在评论区留言讨论!

相关文章:

  • Zotero PDF Translate插件配置百度翻译api
  • 算法——前缀和
  • 采用 Ansys Workbench CFX 的 TwinMesh 应用
  • 分享一款AI绘画图片展示和分享的小程序
  • C++中的顺序容器(一)
  • Java零基础入门笔记:(3)程序控制
  • 单线程模拟n个线程的L函数
  • docker push镜像到阿里云
  • 网络药理学与LiP-MS:小分子药物研究的天合之作
  • 从零开始在Windows系统上搭建一个node.js后端服务项目
  • 蓝耘智算携手DeepSeek,共创AI未来
  • Java中的集合框架:List、Set和Map有什么区别?
  • 第G7周:Semi-Supervised GAN 理论与实战
  • 【Linux】文件管理
  • 代码随想录DAY32|动态规划、509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯
  • 大数据学习(48) - Flink状态种类
  • 【Spring+MyBatis】_图书管理系统(上篇)
  • Java并发编程面试题:内存模型(6题)
  • 中药细粒度图像分类
  • Vulkan 学习(14)---- 描述符集
  • 北大深圳研究生院成立科学智能学院:培养交叉复合型人才
  • 中方发布《不跪!》视频传递何种信息?外交部回应
  • 释新闻|西葡大停电为何规模大、恢复慢?可再生能源是罪魁祸首?
  • 新疆维吾尔自治区原质量技术监督局局长刘新胜接受审查调查
  • 俄罗斯延长非法滞留外国人限期离境时间至9月
  • 上海112位全国劳动模范和先进工作者接受表彰,樊振东榜上有名