mysql怎么修改可以 mysql 修改

我想修改mysql数据库的名字,可以怎么修改被取消的命令MySQL 之前提供了一个 rename database db_old to db_new 的命令来直接对数据库改名,可能由于实现的功能不完备(比如 , 这条命令可能是一个超大的事务,或者是由于之前的表很多还是 MyISAM 等),后来的版本直接取消了这条命令 。更改数据库名大致上有以下几种方案:
一、mysqldump 导入导出要说最简单的方法,就是直接用 mysqldump 工具 , 在旧库导出再往新库导入(最原始、最慢、最容易想到)的方法:旧库 yttdb_old 导出(包含的对象:表、视图、触发器、事件、存储过程、存储函数)
二、改整库的表名利用 MySQL 更改表名的方法来批量把旧库的所有表依次遍历,改名为新库的表 。这种方法比第一种要快很多倍,但是没有第一步操作起来那么顺滑,不能一步到位 。比如,要把数据库 yttdb_old 改名为 yttdb_new,如果数据库 yttdb_old 里只有磁盘表,那很简单,直接改名即可 。或者写个脚本来批量改,非常简单 。但是一般旧库里不只有磁盘表 , 还包含其他各种对象 。这时候可以先考虑把旧库的各种对象导出来,完了在逐一改完表名后导进去 。
三、历史方案其实在 MySQL 早期还有一种方法 。假设 MySQL 部署好了后,所有的 binlog 都有备份,并且二进制日志格式还是 statement 的话,那就可以简单搭建一台从机,让它慢慢追主机到新的库名,等确切要更改旧库的时候,再直接晋升从机为主机即可 。这里只需要从机配置一个参数来把旧库指向为新库:replicate-rewrite-db=yttdb_old-yttdb_new不过这种局限性很大,不具备标准化,不推荐 。
总结其实针对 MySQL 本身改库名,大致就这么几种方法:
如果数据量小 , 推荐第一种;
数据量大 , 则推荐第二种;
数据量巨大,那就非 MySQL 本身能解决的了 。
可通过部署第三方 ETL 工具 , 通过解析 MySQL 二进制日志或其他的方式来把旧库数据直接读取到新库达到改名的目的等等 。
Mysql如何修改用户密码 在使用mysql时,如果想修改用户密码,怎么修改?我们可以借助客户端工具来修改,下面来看一下 。
01
打开客户端工具Navicat,打开数据库里的mysql库 , 这是一个系统数据库 。
02
打开后 , 在Tables表里,找到user表,这是保存系统用户的一个表数据 。
03
打开后,就可以在这里看到每个数据库的用户名和密码了 。
04
要修改密码,我们点击单元格,让其变成编辑状态后,直接输入新的密码就行了 。
如何修改MySQL数据库数据存储盘?【mysql怎么修改可以 mysql 修改】在Windows操作系统中 , 如果我们通过MySql的全自动安装包安装数据库,那么数据库的数据将会默认被存储在C盘中,而C盘作为系统盘 , 一般情况下我们并不想放和系统无关的一些内容 。那么就需要将这些数据库数据移动到其他盘中,如何能够快捷方便的移动这些数据呢?
步骤其实也比较简单 。
首先,MySql的数据库数据会被默认的安装在C盘的ProgramData目录下,我们进入到ProgramData后,找到MySql文件夹,根据自己安装的版本不同,在MySql文件夹下会有MySql Server *.*的文件夹,点击进入后,就可能看到一个叫Data的文件夹 。
然后复制Data文件夹到你想要移动的目录下,例如:我想要移动到D盘的MySqlData下 。
接下来,我们需要停止MySql服务 。
可以在任务栏的搜索中,搜索“服务”,然后找到服务组件的应用并打卡 。
在服务组件的页面 , 找到“服务(本地)”,然后选中,找到名为“MySQL”开头的服务 , 并停止它 。
当然,还有一个简单的办法,就是先使用“WindowsR”快捷键打开运行工具 , 然后输入cmd回车打开“命令提示符”;或者在任务栏上搜索cmd,使用管理员打开“命令提示符” 。
然后在“命令提示符”中,输入net stop mysql,当然,如果你和我一样是5.*的版本,例如我的是5.7版本的mysql,那么你需要输入“net stop mysql57” 。
然后就会提示MySQL57 服务停止了 。
这时,我们使用记事本打开mysql的配置文件my.ini , 就在我们刚才移动Data的MySQL目录下 。然后找到datadir配置,修改成我们的新目录并保存 。
然后重新启动服务,启动方式和停止方式一样,在服务中右键MySQL的服务,然后选择启动 。或者通过cmd,输入net start mysql或者好像我一样 , 输入net start mysql57 。
当然,这里有可能会启动服务失败,启动服务失败的原因有可能是你用来放Data的文件目录的权限问题 , 这是我们右键这个目录,然后在安全的选项卡中加上NETWORK SERVICE的角色,权限是完全控制,然后保存 。再启动服务试试?应该就OK了 。
最后,打开你的mysql客户端试试是否成功了吧 , 确认无误后,就可以把之前的Data文件夹删掉了 。
MySQL中如何修改用户各种信息在MySQL中修改用户的语法如下:
看了这么一大坨东西,感觉啥也没有告诉我,一脸懵逼 。下面我们一起来解读一下具体的每一个选项的含义 。
对于这个大家应该有所了解 。
首先它是被中括号包裹起来的,表示是可选的不是必须的,也就是说在我们的alter user语句中,这个IF EXISTS可以不出现不是必须要写的 。但是为什么还要有这个呢 , 这个选项出现的目的是为了让你在执行一个alter user语句的时候,如果语句中指定的数据库用户不存在(或者你写用户名称的是写错了),而不至于出现一个错误的信息,如果指定了IF EXISTS这个词,他就会以一个警告的信息提示你而不是直接给你一个错误信息 。
更直白一下就是:如果你的alter user的语句中指定的用户确实存在,那么就执行你的语句,如果不存在呢,就不执行你的语句,跳过这个alter user的指令 。看示例:
在上面的例子中,第一个修改用户的语句,没有使用if exists关键词直接修改了一个不存在的用户的信息,结果直接出现了错误信息,接着我们使用了if exists关键词,结果SQL语句执行成功,只是出现了一个warning警告 , 然后我们通过show warnings命令查看警告信息的内容,提示我们用户'zhangsanfeng'@'%'不存在 。这就是if exists关键词的存在的意义 。
当我们修改一个用户的信息的时候,我们需要指定用户的名称 。这个名称,不仅仅使我们平时登录数据库的时候,输入的用户的名字 , 还有一个隐含的部分就是用户登录的host网段,这个网段表示只允许该用户通过这个网段登录,如果用户不在这个定义的网段内,即便是用户名和密码正确 , 也不能争取的登录 。
下面的创建用户是两个不同的用户 。
上面的两个用户中,分别表示如下:
当然,我们可以使用模糊匹配的方式来限定用户登录的网段 , 比如我们创建下面第一个用户表示只要这个用户登录的时候,使用的主机的IP地址是在10.10.0.0~10.10.255.255这个网段质检的任何一个IP地址都可以登录 。
特殊的网段localhost。如果我们创建如下的用户,则表示该用户只能在MySQL数据库所在的服务器本机上登录 。
还有另外一个特殊的网段%。它表示用户可以通过任何一个IP地址来登录,不对用户登录的主机所在的网段做任何限制 。如下用户就是不对它登录的主机IP地址做任何限制 。
auth_option选项的含义表示指定用户登录数据库的时候使用的验证插件和密码 。它的选项有如下几种,下面我们分别展开分析一下各个选项的使用场景和示例 。
如果在IDENTIFIED关键字后面没有使用WITH关键字指定使用的密码插件名称,则会使用MySQL默认的密码插件 。对于MySQL默认的密码插件是什么,可以使用下面的命令进行查看:
通过上面的输出,我们可以看出默认的密码插件采用的是mysql_native_password插件,参数default_authentication_plugin的值是可以在MySQL的配置文件my.cnf中指定的,它可以有以下两种取值:
MySQL的配置文件my.cnf中配置默认的密码认证插件的方式如下:
如果我们要修改某一个用户的密码认证插件,就可以使用到IDENTIFIED WITH auth_plugin这个语句了 。如果一个用户它的密码认证插件使用的是默认的mysql_native_password,我们想把它的密码认证插件修改为sha256_password,此时我们就可以使用下面的命令来修改:
执行完成上述命令后,xyz这个用户的密码就会设置为空,并更新它的密码为已经过期 , 同时更新了它的密码认证插件为sha256_password,结果如下所示:
更改用户的密码认知方式之后,当xyz再次尝试登录MySQL数据库的时候,输入空密码登录成功后,会要求其修改一下自己的密码 , 然后才可以执行其他SQL语句的操作,这个要求和我们刚安装MySQL数据库后,第一次使用root登录的时候要求修改root的密码是一样的 。下面是修改完成用户xyz的密码认证插件之后,尝试使用空密码登录后的操作示例:
指定用户的密码认证插件,并设置密码 。
当我们想给用户指定密码的认证插件 , 并且想为其设置密码的时候,可以使用这个命令 , 示例如下:
这样用户xyz的密码认证方式修改为了mysql_native_password,并且修改它的密码为xyz。需要我们主要的是by关键字后面跟的是密码的明文 , 也就是我们尝试登录的时候,输入的密码的值 。
指定用户的密码认证插件 , 并设置密码 。
当我们想给用户指定密码的认证插件,并且想为其设置密码的时候,可以使用这个命令 , 示例如下:
这样用户xyz的密码认证方式修改为了mysql_native_password,并且修改它的密码为xyz。需要我们主要的是as关键字后面跟的是加密后的密码,而不是我们的明文的密码 。如果我们想知道得到一个加密后的密码,则可以使用下面password()函数来得到加密后的密码 。
这里主要是指定用户在连接到MySQL数据库的时候,是否需要使用加密的方式,如果使用加密的方式,则需要启用SSL加密协议,同时也需要对MySQL进行证书的配置 。
考虑到性能的问题,使用TLS加密的方式连接MySQL数据库会对MySQL数据库的性能有一定的影响 。非必要情况下,一般不建议启用TLS加密连接到数据库,因为大家的MySQL数据库一般都是针对内网开放的 。所以 , 启用TLS加密协议连接没有必要 。
resource_option选项中 , 主要是为每一个用户设置它所能使用到资源,做资源的使用限制 。示例如下:
上面四个参数的值如果为0 , 则表示对应的资源限制不做任何限制 。
password_option选项用来配置用户的密码,指定其密码的效期 。下面看几个示例:
对于MySQL系统默认的有效期是多少 , 可以通过如下命令查看,下面的值为0表示密码有效期为永久有效 。
lock_option选择是用来锁定和解锁用户的 。示例如下:
关于mysql怎么修改可以和mysql 修改的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读