首页 > 数据库 >在Ubuntu22.04上安装MySQL-Server,并配置可视化界面SQL-Workbench

在Ubuntu22.04上安装MySQL-Server,并配置可视化界面SQL-Workbench

时间:2023-10-11 16:15:18浏览次数:29  
标签:Workbench sudo SQL Ubuntu22.04 mysql 用户 密码 MySQL password

在Ubuntu22.04上安装MySQL-Server,并配置可视化界面MySQL-Workbench

彻底删除MySQL

若您是首次,在Ubuntu22.04上崭新安装mysql,可以略过该步。

首先卸载mysql-common:

sudo apt-get remove mysql-common

然后卸载已经安装的mysql-server:

sudo apt-get autoremove --purge mysql-server

之后,使用以下命令查看mysql剩下的依赖,并卸载:

dpkg --list|grep mysql

 最后,清理残留数据:

dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P 

在Ubuntu22.04上崭新安装MySQL-Server

Installing MySQL

首先更新软件库,并安装mysql-server:

sudo apt update
sudo apt install mysql-server

然后使用以下命令确保数据库服务器在运行:

sudo systemctl start mysql.service

上述命令将安装并开始运行MySQL,但不会提示您设置密码或进行其他配置的更改。在接下来的部分,我们将致力于解决这个问题。

Configuring MySQL

对于MySQL的新安装,您需要运行数据库管理系统附带的安全脚本。这个脚本提供给使用者更改某些不太安全的默认配置的选项,比如不允许远程root登录和删除示例用户。

但是若在此时直接运行安全脚本,可能出现错误。因为该脚本将尝试为安装者的根用户MySQL账户设置密码,然而Ubuntu上默认的安装配置的身份验证方式,无需密码即可连接服务器。

因此在使用该安全脚本之前,我们学要执行以下步骤调整根MySQL用户的身份验证方式,保证不会出现上述错误。

sudo mysql
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password(此处填自己设的密码)';
mysql> exit

上述步骤将根用户的身份验证方法更改为使用密码的方法。

后使用sudo运行SQL安装脚本:

sudo mysql_secure_installation

该脚本将带您完成一系列提示,以此您可以在其中对MySQL的安全选项做出一些更改。

注意,第一个提示将询问您是否设置验证密码插件,该插件可用于测试新MySQL用户的密码强度,并给出相应建议,建议安装(即选y)。如果您选择使用验证密码插件,则您创建的任何MySQL用户都将需要使用密码进行身份验证,以拥有满足您选择的策略的密码。(这是被推荐的,因为这将有利于SQL-workbench的使用)

之后,您可以按y,然后按ENTER接受所有后续问题的默认设置。这将删除一些匿名用户和测试数据库,禁用远程根登录,并加载这些新规则,以便MySQL立即更新您所做的更改。(当然如果想要远程访问数据库,远程根登陆也可以开放,但是数据库的安全性将有所降低)。

不建议的行为:

一旦安全脚本配置完成,您的MySQL将得到保护。现在,您可以使用MySQL客户端创建一个专用的数据库用户。

Creating a Dedicated MySQL User and Granting Privileges

以使用密码登陆MySQL为例:

mysql -u root -p你的密码
eg:
mysql -u root -p******

在看见MySQL提示符,就可以使用CREATE USER语句创建一个新用户。它们遵循以下通用语法:

mysql> CREATE USER 'username'@'host' IDENTIFIED WITH authentication_plugin BY 'password';

在CREATE USER之后,您可以指定用户名。紧接着是一个@符号,然后是该用户要连接的主机名。如果您只计划从Ubuntu服务器本地访问该用户,则可以指定localhost。将用户名和主机都用单引号括起来并不总是必要的,但这样做有助于防止错误。  

在选择用户的身份验证插件时,您有几个选项。前面提到的auth_socket插件非常方便,因为它提供了强大的安全性,而不需要有效用户输入密码即可访问数据库。但它也阻止了远程连接,当外部程序需要与MySQL交互时,远程连接会使事情变得复杂。

作为替代方案,您可以完全省略语法中的WITH authentication_plugin部分,让用户使用MySQL的默认插件caching_sha2_password进行身份验证。MySQL文档建议那些想要使用密码登录的用户使用此插件,因此以下例创建新用户sammy:(先别急)

mysql> CREATE USER 'sammy'@'localhost' IDENTIFIED BY 'password';

某些版本的PHP,会在caching_sha2_password上产生问题。如果您计划将此数据库与PHP应用程序(例如phpMyAdmin)一起使用,您可能需要创建一个用户,该用户将使用较旧但仍然安全的mysql_native_password插件进行身份验证:

mysql> CREATE USER 'sammy'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
//or alter(更改)
mysql> ALTER USER 'sammy'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

创建新用户后,您可以授予他们适当的权限。授予用户权限的一般语法如下:

mysql> GRANT PRIVILEGE ON database.table TO 'username'@'host';

此示例语法中,定义了允许用户在指定的数据库和表上执行的操作。您可以通过用逗号分隔每个命令,向同一用户授予同一用户的多个特权。您还可以通过输入星号(*)代替数据库和表名来授予全局权限。在SQL中,星号是用于表示“所有”数据库或表格的特殊字符。示例如下:

mysql> GRANT CREATE, ALTER, DROP, INSERT, UPDATE, INDEX, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'sammy'@'localhost' WITH GRANT OPTION;

请注意,此语句还包括WITH GRANT OPTION。这将允许您的MySQL用户将其拥有的任何权限授予系统上的其他用户。

 接下来使用如下命令更新缓存并退出MySQL:

mysql> FLUSH PRIVILEGES;
mysql> exit

在将来,使用以下命令(以sammy为例)以一个新MySQL user的身份登陆:

mysql -u sammy -p

注意:

Testing MySQL

不管你是如何安装的,MySQL都应该已经开始自动运行了。要对此进行测试,检查其状态:

systemctl status mysql.service

输出应与下图类似:

配置可视化界面MySQL-Workbench

进入网站https://dev.mysql.com/downloads/repo/apt/,click Download,在弹出的界面click “No thanks, just start my download.”。

下载好.deb安装包后,使用如下命令进行安装:

sudo dpkg -i mysql-apt-config_0.8.26-1_all.deb 

等待安装完成。

后键入以下命令安装MySQL-Workbench:

sudo apt update
sudo apt install mysql-workbench-community

在默认的界面中即可看到本地的SQL Server,使用root账号登陆即可。

标签:Workbench,sudo,SQL,Ubuntu22.04,mysql,用户,密码,MySQL,password
From: https://www.cnblogs.com/learner-and-helper-YZY/p/17757010.html

相关文章

  • 定位SQL慢查询
    一、概念MySQL的慢查询(慢查询日志):是MySQL提供的一种日志记录,用来记录在MySQL中响应时间超过阈值的语句。具体环境中,运行时间超过long_query_time值的SQL语句,则会被记录到慢查询日志中。long_query_time的默认值为10,意思是记录运行10秒以上的语句。默认情况下,MySQL数据库并不启......
  • mysql插入数据时遇到的问题
    1、 Illegalmixofcollations(latin1_swedish_ci,IMPLICIT)and(utf8mb4_general_ci,COERCIBLE)foroperation'=' 解决:原因:因为新创建的表字符集是latin1_swedish_ci,而原有的字符集需要utf8mb4_general_ci,所以报错。ALTERTABLE表名CONVERTTOCHARACTER......
  • sql之having关键字的使用
    Havinghaving主要用于过滤groupby之后的聚合函数例如:现在有user表user_ididcardnameage112345张三18212345张三18354321李四20可以利用having查询出重复的字段数selectuser.idcard,count(*)fromuser......
  • Debian12安装MySQL8实践及问题解决方案
    Debian12安装MySQL数据库,常规操作:sudoaptsearchmysql&sudoaptinstallmysql,肯定是行不通的,因为没有安装包。把我的安装过程以及遇到问题的解决方案记录下来,供大家借鉴。第一步更新系统、下载软件包命令如下:sudoaptupdatewgethttps://dev.mysql.com/get/mysql-apt-co......
  • 查询数据库慢排查、获取当前数据库连接数,sql执行很快但是日志记录接口确很慢
    获取当前数据库连接数@ResourceprivateDruidDataSourcedruidDataSource;intactiveCount=druidDataSource.getActiveCount();intactivePeak=druidDataSource.getActivePeak();LOG.info("当前连接数:{},最高峰值连接数:{}",activeCount,activePe......
  • 一次插入多条记录的SQL语句
    在使用SQL数据库的时候,我们也许会需要一次像数据库中添加多条记录,那么我们可以使用SQL语句来实现,该语句具体如下:--添加一条记录    INSERTINTOtableName(col1,col2,col3)VALUES(1,2,3)       --添加多条记录    INSERTINTOtableName(col1,col2,col3)    S......
  • MySQL使用cmd窗口命令导入数据库
    如下:setgloballog_bin_trust_function_creators=1;--导入数据库之前做准备SETGLOBALlog_bin_trust_function_creators=TRUE;cmd命令窗口执行如下导入命令命令行登录mysqlmysql-uroot-pxxx;mysql>usedatabasename;mysql>sourced:/xxx.sqlend......
  • MySQL高级
    前言:本篇文章是本人学习MySQL高级的笔记。资料:《MySQL是怎样运行的》、《小林Coding-图解MySQL》、《MySQL45讲》、《尚硅谷康师傅MySQL视频》一、基础篇1.什么是关系型数据库?关系型数据库是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,一系列的行和列被......
  • MYSQL数据备份之mysqldump命令详解
    一、mysqldump简介mysqldump 是 MySQL 自带的逻辑备份工具。它的备份原理是通过协议连接到 MySQL 数据库,将需要备份的数据查询出来,将查询出的数据转换成对应的insert 语句,当我们需要还原这些数据时,只要执行这些 insert 语句,即可将对应的数据还原。二、mysqldump命令......
  • 2023_10_11_MYSQL_DAY_03_笔记_上
    2023_10_11_MYSQL_DAY_03_笔记_上10章作业题01答案INSERTINTOclass(classid,cname)VALUES(1,'Java1班');INSERTINTOclass(cname,classid)VALUES('Java2班',2);INSERTINTOclassVALUES(3,'Java3班',NULL);10章作业题020304答案INSERTINTOstud......