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

ubuntu安装mysql8.0.35过程和报错处理

ubuntu安装mysql8.0.35过程

1.更新包列表:首先,确保您的系统已更新到最新状态。运行以下命令来更新包列表和安装最新的软件包:

sudo apt update
sudo apt upgrade

2.安装MySQL服务器:运行以下命令来安装MySQL服务器:

sudo apt install mysql-server

在安装过程中,系统会要求您设置MySQL root用户的密码。请务必记住这个密码,因为它用于管理MySQL数据库。

#安装指定版本:一旦您找到了要安装的特定版本,可以使用apt命令来安装它。例如,如果您要安装MySQL 5.7版本,可以运行以下命令:

sudo apt install mysql-server=5.7.34-1ubuntu18.04

mysql8.0.35版本

sudo apt install mysql-server=8.0.35-0ubuntu0.22.04.1

阻止自动更新:为了防止系统在以后自动升级MySQL到较新版本,您可以锁定MySQL软件包的版本。使用以下命令来锁定已安装的MySQL软件包:

sudo apt-mark hold mysql-server

3.启动MySQL服务:安装完成后,MySQL服务器将自动启动。您可以运行以下命令来确保MySQL正在运行:

sudo systemctl status mysql

如果MySQL没有启动,您可以使用以下命令手动启动它:

sudo systemctl start mysql

4.设置MySQL安全性:运行以下命令来运行MySQL的安全性脚本,以加强MySQL服务器的安全性并删除一些默认设置:

sudo mysql_secure_installation

5.验证MySQL安装:您可以运行以下命令来验证MySQL是否已成功安装并运行:

sudo mysql -uroot

6.mysql-企业开发使用方式(远程连接)

mysql -u用户名 -p密码 [-h数据库服务器IP地址 -P端口号]
mysql -h192.168.1.1 -P3306-uroot -p123456

MySQL8为一些账户赋予远程访问的权限。

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

问题描述

在安装 MySQL 8.x 的过程中,往往需要为 MySQL 中的一些账户赋予远程访问的权限。

在 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 '密码';
# 为创建的账户赋权
GRANT '权限列表' ON '数据库' TO '用户名'@'访问主机';
GRANT ALL ON *.* TO 'root'@'%';
# 刷新
FLUSH PRIVILEGES;

mysql版本:'for the right syntax to use near ‘identified by ‘password’ with grant option’

查询mysql具体版本

SELECT` `@@VERSION

问题分析:

mysql版本8.0.13,在给新用户授权时,发生了变化:

1064 - 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 ‘password’ with grant option’ at line 5, Time: 0.000000s

出错的语句:

grant all privileges on *.* to 'root'@'172.16.10.203' identified by  'password' with grant option

修正后的语句:分开三次执行:

#创建账户
create user 'root'@'172.16.10.203' identified by  'password'
#赋予权限,with grant option这个选项表示该用户可以将自己拥有的权限授权给别人
grant all privileges on *.* to 'root'@'172.16.10.203' with grant option
#改密码&授权超用户,flush privileges 命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里
flush privileges;

原因分析:

此版的的mysql版本把将创建账户和赋予权限分开了。

创建账户::create user ‘用户名'@‘访问主机' identified by ‘密码';
赋予权限:grant 权限列表 on 数据库 to ‘用户名'@‘访问主机' ;
with grant option这个选项表示该用户可以将自己拥有的权限授权给别人

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

MySQL8是一款非常流行的关系型数据库管理系统,它的远程访问功能给我们的开发和管理带来了极大的方便。下面是mysql8如何开通远程访问的详细步骤:

  1. 进入MySQL控制台,创建一个新的数据库用户。
CREATE USER 'NewUserName'@'%' IDENTIFIED BY 'Password';
  1. 为该用户授权,允许远程访问该用户所拥有的数据库。
GRANT ALL PRIVILEGES ON `DatabaseName`.* TO 'NewUserName'@'%';
  1. 修改MySQL配置文件,开启远程访问。
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf

找到bind-address 字段,将其值修改为0.0.0.0,即允许任何IP地址访问。

bind-address = 0.0.0.0
  1. 重启MySQL服务。
sudo systemctl restart mysql
  1. 验证远程访问是否成功。

在远程主机上使用mysql客户端连接MySQL服务器。命令格式:mysql -u NewUserName -p -h<服务器IP>,然后输入密码。

mysql -u NewUserName -p -h 192.168.1.100

通过以上步骤,您可以成功开通MySQL8的远程访问功能,访问过程中请注意网络安全。

相关文章:

  • Python采集某网站数据实现简单可视化效果, webpack Js逆向解密
  • XML Web 服务 Eclipse实现中的sun-jaxws.xml文件
  • Mac 本地部署thinkphp8【部署环境以及下载thinkphp】
  • txt2xml
  • DNS服务器典型配置
  • 算法模板题记录
  • Python万圣节礼物
  • LeetCode 2656. K 个元素的最大和:一次遍历(附Python一行版代码)
  • 【Pytorch和深度学习】栏目导读
  • Oneid方案
  • 《深入浅出.NET框架设计与实现》阅读笔记(四)
  • SOLIDWORKS Flow Simulation阀门内流体仿真
  • 基于乌鸦算法优化概率神经网络PNN的分类预测 - 附代码
  • 软件测试不是所有人都适合的
  • 腾讯云标准型SA4服务器AMD处理器性能测评
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • Angular数据绑定机制
  • Brief introduction of how to 'Call, Apply and Bind'
  • echarts的各种常用效果展示
  • gulp 教程
  • Invalidate和postInvalidate的区别
  • Java多态
  • JS 面试题总结
  • Laravel 中的一个后期静态绑定
  • leetcode386. Lexicographical Numbers
  • Object.assign方法不能实现深复制
  • PHP 7 修改了什么呢 -- 2
  • python学习笔记 - ThreadLocal
  • 高性能JavaScript阅读简记(三)
  • 构建二叉树进行数值数组的去重及优化
  • 容器服务kubernetes弹性伸缩高级用法
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 消息队列系列二(IOT中消息队列的应用)
  • 小程序 setData 学问多
  • 一天一个设计模式之JS实现——适配器模式
  • 用Canvas画一棵二叉树
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • 最简单的无缝轮播
  • postgresql行列转换函数
  • ​香农与信息论三大定律
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (2.2w字)前端单元测试之Jest详解篇
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (NSDate) 时间 (time )比较
  • (Python) SOAP Web Service (HTTP POST)
  • (草履虫都可以看懂的)PyQt子窗口向主窗口传递参数,主窗口接收子窗口信号、参数。
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (转)shell中括号的特殊用法 linux if多条件判断
  • .cfg\.dat\.mak(持续补充)
  • .dat文件写入byte类型数组_用Python从Abaqus导出txt、dat数据
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .NET 常见的偏门问题
  • .net 获取url的方法