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


    ubuntu安装mysql8.0.35过程

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

    sudo apt update
    sudo apt upgrade
    
    • 1
    • 2

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

    sudo apt install mysql-server
    
    • 1

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

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

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

    mysql8.0.35版本

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

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

    sudo apt-mark hold mysql-server
    
    • 1

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

    sudo systemctl status mysql
    
    • 1

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

    sudo systemctl start mysql
    
    • 1

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

    sudo mysql_secure_installation
    
    • 1

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

    sudo mysql -uroot
    
    • 1

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

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

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

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

    问题描述

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

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

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

    在 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
    
    • 1
    • 2

    原因分析

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

    解决方案

    最终解决方案

    # 创建账户
    CREATE USER '用户名'@'访问主机' IDENTIFIED BY '密码';
    # 为创建的账户赋权
    GRANT '权限列表' ON '数据库' TO '用户名'@'访问主机';
    GRANT ALL ON *.* TO 'root'@'%';
    # 刷新
    FLUSH PRIVILEGES;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

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

    查询mysql具体版本

    SELECT` `@@VERSION
    
    • 1

    问题分析:

    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
    
    • 1

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

    #创建账户
    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;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    原因分析:

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

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

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

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

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

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

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

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

    mysql -u NewUserName -p -h 192.168.1.100
    
    • 1

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

  • 相关阅读:
    SpringSecurity结构分析
    【DRAM存储器五】DRAM存储器的架构演进-part2
    研究人员发现 OpenAI ChatGPT、Google Gemini 的漏洞
    python集合
    磁盘和文件系统管理(二)
    2022-Java 后端工程师面试指南 -(SSM)
    netstat命令应用和ifconfig命令应用
    适用于快速开发应用的Golang二次框架
    跨平台编译QCA、安装QCA(Windows、Linux、MacOS环境下编译与安装)
    (附源码)php疫情上报管理系统 毕业设计 170948
  • 原文地址:https://blog.csdn.net/m0_46168848/article/details/134345868