我可以切换';已连接';mysql来源的sql脚本中的用户?

我可以切换';已连接';mysql来源的sql脚本中的用户?,mysql,Mysql,我想知道是否可以在由mysql执行的sql脚本中切换“已连接”的用户 这是我的目标描述。也许,不需要切换用户,另一个解决方案会满足我的需求 我想编写一个数据库创建脚本,如下所示: 然后从命令行调用此脚本,如 $ mysql -u root -p"....." < create_db.sql $mysql-u root-p“…”

我想知道是否可以在由
mysql
执行的sql脚本中切换“已连接”的用户

这是我的目标描述。也许,不需要切换用户,另一个解决方案会满足我的需求

我想编写一个数据库创建脚本,如下所示:

然后从命令行调用此脚本,如

$ mysql -u root -p"....." < create_db.sql
$mysql-u root-p“…”

这是可能的还是我必须离开脚本才能切换连接的用户?

我不知道从SQL脚本中切换用户的常规方法

不规则可以是a或的用法。两者都允许设置定义器。因此,您可以尝试将“特殊用户代码”放入存储过程或触发器中,调用存储过程或触发器并执行代码

如果即使这样也不起作用,您需要一个脚本:

#!/bin/sh -eu
mysql --host localhost --user root --password root_pw < create_user.sql
mysql --host localhost --user u --password pw < create_table.sql
#/bin/sh-欧盟
mysql——主机localhost——用户根目录——密码根目录
mysql——主机localhost——用户u——密码pw >  AFAIK,除非您与其他用户的凭据创建全新连接,否则不能在脚本中间更改用户。


顺便说一句,connect命令只会重新连接,但文档状态中只有两个可选参数:db和host。

为什么要在脚本中切换用户?这样做你什么也得不到。@Justin可能有一个用户有创建数据库和授予特权,但没有创建表,而另一个用户只有创建表。@Shi我站在正确的位置,有点害怕。
#!/bin/sh -eu
mysql --host localhost --user root --password root_pw < create_user.sql
mysql --host localhost --user u --password pw < create_table.sql