ubuntu20配置mysql8

news2024/9/21 16:46:59

首先更新软件包索引运行

sudo apt update

命令。然后运行

sudo apt install mysql-server

安装MySQL服务器。

安装完成后,MySQL服务将作为systemd服务自动启动。你可以运行

sudo systemctl status mysql

命令验证MySQL服务器是否正在运行。

连接MySQL

当MySQL安装完成后,你可能会想运行命令

mysql -u root -p

登录到MySQL服务器

如果你登录到Ubuntu的用户不是root用户你将不能访问MySQL服务器。
注意,如果你尝试使用密码登录也将被拒绝连接,MySQL root用户默认是没有密码。

你将会收到类似于这样的消息

(28000): Access denied for user 'root'@'localhost' (using password: YES)

或者

ERROR 1045 (28000): Access denied for user 'root'@'localhost'

这是因为在MySQL 8.0上,对root用户使用auth_socket插件进行身份验证。auth_socket插件仅对从localhost连接到Unix socket文件用户进行身份验证。

这意味着您无法通过提供密码来以root用户连接到MySQL服务器。但你可以通过命令

sudo mysql

连接到MySQL服务器。

sudo mysql
Welcome to the MySQL monitor.  Commands end with ; or \g.
mysql>

总结:可以使用 mysql -u root -p 或者 sudo mysql 在本机登录到mysql,然后执行下一步操作。

修改账号密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;

补充:

  • mysql 5.7 localhost和%的区别

基础解释
localhost 只能本地登录

% 任何客户机都能登录(不安全,可以在创建用户时指定ip)
注:user@%和user@localhost是两个不同的用户

相关阅读:

Linux下MySQL出现ERROR 1698 (28000): Access denied for user
‘root‘@‘localhost‘和ERROR 1045 (28000)的一些解决方法

先说原因
因为在Ubuntu下用apt装mysql是没有设置密码的环节的
所以一开始就是没有密码,而且密码也不是为空值,直接敲回车也进不去mysql

所以我们这个时候可以直接
mysql -u root
直接进入mysql,那么如何设置密码呢?

按照以下命令即可:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.00 sec)

mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
Query OK, 0 rows affected (0.00 sec)
然后重启mysql服务器

然后你再尝试进入mysql会发现,
在这里插入图片描述

不用密码已经没办法进入了。

配置远程访问

默认情况下,MySQL服务器仅监听来自本地主机的连接,这意味着它只能由运行在同一主机上的应用程序访问。

但是,在某些情况下,有必要从远程位置访问MySQL服务器。例如,当您想从本地系统连接到远程MySQL服务器时。

或者当使用多服务器部署时,应用程序与数据库服务器不在同一台计算机上运行。

  1. 一种选择是通过SSH隧道访问MySQL服务器,
  2. 另一种是将MySQL服务器配置为接受远程连接。

在本教程中,我们将向你展示如何配置MySQL服务器接受远程的连接。包括添加或更改bind-address选项指定监听地址0.0.0.0 ,授权MySQL用户远程访问权限。

配置防火墙iptable,UFW,FirewallD允许连接3306端口。验证MySQL数据库服务器的远程连接。相同的说明适用于MariaDB。

配置MySQL服务器

第一步是设置MySQL服务器监听计算机所有IP地址。如果MySQL服务器和客户端可以通过专用网络相互通信,那么最好的选择是将MySQL服务器设置为仅在指定IP上监听。

如果要通过公共网络连接到MySQL服务器,请将MySQL服务器设置为监听计算机上的所有IP地址。

因此,您需要编辑MySQL配置文件并添加或更改bind-address选项的值。您可以设置一个IP地址和IP范围。

如果地址为0.0.0.0,则MySQL服务器接受所有远程主机IPv4接口上的连接。如果你需要使用IPv6,请使用::代替0.0.0.0。

MySQL配置文件的位置因Linux发行版而异。在Ubuntu和Debian中,文件位于/etc/mysql/mysql.conf.d/mysqld.cnf,而在基于Red Hat的发行版(如CentOS)中,文件位于/etc/my.cnf。

使用你喜欢的文本编辑器打开文件/etc/mysql/mysql.conf.d/mysqld.cnf,在本教程中我们将使用vim打开文件:

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

搜索以bind-address开头的行,并将其值设置为MySQL服务器应监听的IP地址。默认情况下,该值设置为127.0.0.1即仅在本地主机中监听。

在此示例中,我们将值更改为0.0.0.0,将MySQL服务器设置为监听所有IPv4地址。

bind-address           = 0.0.0.0

mysqld.cnf
在MySQL 8.0和更高版本中,bind-address指令可能不存在。在这种情况下,
请将

bind-address           = 0.0.0.0

其添加到**[mysqld]**下。

完成后,重新启动MySQL服务以使更改生效。在现代的Linux发行版中,MySQL通常使用systemd的服务在后台运行,因此你可以使用systemctl命令重启MySQL服务。

实际举例
找到下面的内容:
在这里插入图片描述
然后,修改为:

#bind-address            = 127.0.0.1
#mysqlx-bind-address     = 127.0.0.1
bind-address            = 0.0.0.0
mysqlx-bind-address     = 0.0.0.0

在这里插入图片描述
要使配置生效是需要重启mysql服务的,不过,先不用急,因为你还得设置可以远程访问数据库的账号,注意,下面以root能够远程登录访问mysql数据库为目的进行操作。

设置允许从远程计算机访问的账号

下一步是允许远程用户访问数据库。首先以root用户登录到MySQL服务器。运行命令

sudo mysql

或者您使用本地MySQL身份验证插件以root用户身份登录,请运行

mysql -uroot -p

命令并在出现提示时输入密码。

在MySQL Shell中,使用GRANT语句为用户授予远程访问权限。

sudo mysql
mysql -uroot -p
MYSQL5版本具体执行
GRANT ALL ON database_name.* TO user_name@'ip_address' IDENTIFIED BY 'user_password';

GRANT命令解释

  • 其中database_name是用户将连接到的数据库的名称。
  • user_name是MySQL用户的名称。
  • ip_address是用户本地计算机的IP地址。使用***%***允许用户从任何IP地址进行连接。
  • user_password是用户密码。

例如,仅允许IP是10.8.0.5的客户端使用密码my_passwd和用户名为foo访问数据库dbname,请运行以下命令,如需允许所有IP,请使用%代替IP地址。命令如下:

GRANT ALL ON dbname.* TO foo@'10.8.0.5' IDENTIFIED BY 'my_passwd';
MYSQL8版本具体执行

ps:
上面的是mysql5的,在mysql8下面会报错,解释如下:

MySQL8.x使用GRANT为用户赋权时报错

在 MySQL 5.x 的版本中的操作方式

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

在 MySQL 8.x 中版本中按照以上操作

mysql> GRANT ALL PRIVILEGES ON . TO ‘root’@‘%’ IDENTIFIED BY
‘123456’ WITH GRANT OPTION; ERROR 1064 (42000): You have an error in
your SQL syntax; check the manual that corresponds to your MySQL
server version for the right syntax to use near ‘IDENTIFIED BY
‘123456’ WITH GRANT OPTION’ at line 1

原因分析

通过官网文档的指引可以知道,新版本的 MySQL 8.x 版本已经将创建账户和赋权的方式分开导致以上的命令在 MySQL 8.x 上执行报语法错误。

解决方案

# 创建账户
CREATE USER '用户名'@'访问主机' IDENTIFIED BY '密码';
# 或者修改账号
ALTER USER '用户名'@'访问主机' IDENTIFIED BY '密码';
# 为创建的账户赋权
GRANT '权限列表' ON '数据库' TO '用户名'@'访问主机';
# 你想一劳永逸不考虑任何安全性的话,什么都给root就好了:
GRANT ALL ON *.* TO 'root'@'%';
# 刷新
FLUSH PRIVILEGES;
验证更改

要验证远程用户是否可以连接到MySQL服务器,可以运行命令

ps:验证之前请确保已经重启mysql服务器了,配置已经生效了!

root@toowhite-MS-7D48:~# systemctl stop mysql
root@toowhite-MS-7D48:~# systemctl start mysql

使用以上步骤创建的账号来进行登录测试:

mysql -u user_name -h mysql_server_ip -p
譬如:
mysql -u root -h 127.0.0.1 -p

其中user_name是您授予远程访问权限的用户名,mysql_server_ip是运行MySQL服务器的主机的IP地址。如果一切设置正确,您将能够登录到远程MySQL服务器。

如果收到类似以下的错误,则说明端口3306未打开,或者MySQL服务器未监听IP地址。ERROR 2003 (HY000): Can’t connect to MySQL server on ‘10.8.0.5’ (111)"

“ERROR 1130 (HY000): Host ‘10.8.0.5’ is not allowed to connect to this MySQL server”。错误表示您尝试登录的用户无权访问远程MySQL服务器。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1424181.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

华为mate60 pro与小米14 pro 的巅峰对决

今天我们换下思路,不讲技术了!我们一起讲讲手机!小编暂时充当一下业余的数码咖。 今天我们就讲讲华为mate60 pro和小米14pro 这两款手机。这两款手机都是近期新出的发行版本,热度那是一直未减啊。 华为mate60 Pro 我们先说说这个…

gitlab-runner注册到gitlab时报错:ERROR: Registering runner... failed xxxxxxxx

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

CRG设计之时钟

1. 前言 CRG(Clock and Reset Generation,时钟复位生成模块) 模块扮演着关键角色。这个模块负责为整个系统提供稳定可靠的时钟信号,同时在系统上电或出现故障时生成复位信号,确保各个模块按预期运行。简而言之,CRG模块就像是SoC系…

Advanced CNN

文章目录 回顾Google NetInception1*1卷积Inception模块的实现网络构建完整代码 ResNet残差模块 Resedual Block残差网络的简单应用残差实现的代码 练习 回顾 这是一个简单的线性的卷积神经网络 然而有很多更为复杂的卷积神经网络。 Google Net Google Net 也叫Inception V…

第一集《修道宗范》

当家师父慈悲,诸位法师、诸位新戒、诸位在家菩萨,阿弥陀佛 今天学人跟大家研究的主题是《修道宗范》。很多人都会认为:所有的宗教都是劝人为善,所以佛教的修学跟一般的宗教,完全是一样的。其实,这个观念只…

Centos慢慢长大(一)

1、写在前面 这将是一个系列性的文章。可能更多的是记录我在学习的过程中的一些感悟吧。我想强调的是在这一系列文章里我会从最小化的安装开始,然后逐渐的增加需要安装的软件。就象一个婴儿的诞生,慢慢的学走路、学说话、学使用筷子。。。。。。 这将是一…

离谱题 3236:练39.1 书香阁座位

3236正常写法 #include<bits/stdc.h> using namespace std; int main() {int sum,a,b;a1;b10;sumb;cout<<a<<" "<<b;cout<<" "<<sum<<endl;do{a;b2;sumx;cout<<a<<" "<<b<<&…

升级企业战略,思腾合力布局智能生产基地

一直专注于人工智能领域&#xff0c;提供云计算、AI服务器、AI工作站、系统集成、产品定制、软件开发、边缘计算等产品和整体解决方案&#xff0c;致力于成为行业领先的人工智能基础架构解决方案商。 升级企业战略 布局智能生产基地 “十四五”时期&#xff0c;是乘势而上打造…

力扣hot100 不同路径 多维DP 滚动数组 数论

Problem: 62. 不同路径 文章目录 思路解题方法复杂度朴素DP 思路 讲述看到这一题的思路 解题方法 &#x1f468;‍&#x1f3eb; 卡尔一题三解 复杂度 时间复杂度: &#xff1a; O ( n m ) O(nm) O(nm) 空间复杂度: O ( n m ) O(nm) O(nm) 朴素DP class Solution {p…

【Qt学习笔记】(一)初识Qt

Qt学习笔记 1 使用Qt Creator 新建项目2 项目代码解释3 创建第一个 Hello World 程序4 关于内存泄漏问题5 Qt 中的对象树6 关于 qDebug&#xff08;&#xff09;的使用7 使用其他方式创建一个 Hello World 程序&#xff08;编辑框和按钮方式&#xff09;8 关于 Qt 中的命名规范…

操作系统基础:死锁

&#x1f308;个人主页&#xff1a;godspeed_lucip &#x1f525; 系列专栏&#xff1a;OS从基础到进阶 &#x1f426;1 死锁的概念&#x1f9a2;1.1 总览&#x1f9a2;1.2 什么是死锁&#x1f9a2;1.3 死锁、饥饿、死循环的区别&#x1f427;1.3.1 概念&#x1f427;1.3.2 区别…

#RAG|NLP|Jieba|PDF2WORD# pdf转word-换行问题

文档在生成PDF时,文宁都发生了什么。本文讲解了配置对象、resources对象和content对象的作用,以及字体、宇号、坐标、文本摆放等过程。同时,还解释了为什么PDF转word或转文字都是一行一行的以及为什么页眉页脚的问题会加大识别难度。最后提到了文本的编码和PDF中缺少文档结构标…

7zip压缩包乱码问题

打开压缩包查看或解压时&#xff0c;发现其中的文件名显示乱码。 经网络搜索&#xff0c;判断是编码的问题。因为我OS是UTF-8&#xff0c;而压缩包编码是CP936。 解决方法只能用命令行&#xff0c;-mcp指定了code page&#xff1a; "c:\Program Files\7-Zip\7z.exe&quo…

阿里云智能集团副总裁安筱鹏:企业数字化的终局是什么?

以下文章来源于数字化企业 &#xff0c;作者安筱鹏博士 回答数字化终局追问的起点是&#xff0c;企业需要重新定义我是谁。成为有竞争力的行业领导厂商&#xff0c;你应当成为一个客户运营商&#xff0c;即能够实时洞察、实时满足客户需求&#xff0c;追求极致的客户体验。而要…

12.scala下划线使用总结

目录 概述实践变量初始化导包引入方法转变为函数用户访问Tuple元素简化函数参数传递定义偏函数变长参数 结束 概述 实践 变量初始化 在Scala中&#xff0c;变量在声明时需要显式指定初始值。可以使用下划线为变量提供初始值&#xff0c;但这种语法仅限于成员变量&#xff0c;…

抠门精出游记第三天

熊野古道&#xff0c;最早我是在新加坡地铁站看到的日本旅游广告上出现的&#xff0c;我觉得以前很多次自由行都是打卡式的&#xff0c;觉得确实需要一些深度游&#xff0c;而且趁着身体状态还可以&#xff0c;反正就这么种草了。 然后小红书上看到不少有关行程介绍&#xff0c…

npm i 遇到了 npm ERR! code CERT_HAS_EXPIRED

npm i 遇到了 npm ERR! code CERT_HAS_EXPIRED 更新你的系统时间【命令 date】。确保你的计算机上的时间和时区设置正确&#xff0c;并且与当前时间相符。 清除你的 npm 缓存。使用 npm cache clean --force 命令清除你的 npm 缓存&#xff0c;关闭ssl验证&#xff0c;并重新运…

使用 Docker 部署超级马里奥 Web 游戏

一、游戏介绍 超级马里奥 是一款经典闯关游戏&#xff0c;也叫做超级玛丽。由红白机 FC 游戏移植而来&#xff0c;简约的游戏画面&#xff0c;加上简单的操作方式&#xff0c;让你重温儿时的经典。 二、环境检查 1&#xff09;检查操作系统版本 检查本次实践的操作系统版本 ca…

使用VScode远程连接Ubuntu

君衍. 一、环境准备二、配置VScode三、远程连接Ubuntu 平常远程连接服务器的工具有很多&#xff0c;比如Moba、Xshell、putty、甚至CRT都可以进行远程连接服务器&#xff0c;但是他们的本质是相同的&#xff0c;都是使用ssh来进行远程连接。 这里我们之所以要使用VScode远程连接…

Debezium发布历史100

原文地址&#xff1a; https://debezium.io/blog/2020/12/17/debezium-1-4-cr1-released/ 欢迎关注留言&#xff0c;我是收集整理小能手&#xff0c;工具翻译&#xff0c;仅供参考&#xff0c;笔芯笔芯. Debezium 1.4.0.CR1 发布 2020 年 12 月 17 日 作者&#xff1a; 克里斯…