我有一个我的数据库的MySQL转储.在其中,有DEFINER条款,看起来像,
"DEFINER=`root`@`localhost`"
Run Code Online (Sandbox Code Playgroud)
也就是说,这些DEFINER条款在我的CREATE VIEW和CREATE PROCEDURE语句中.有没有办法从我的转储文件中删除这些DEFINER子句?
我有一个名为dump的MySQL用户,其中包含以下权限:
GRANT USAGE ON *.* TO 'dump'@'%' IDENTIFIED BY ...
GRANT SELECT, LOCK TABLES ON `mysql`.* TO 'dump'@'%'
GRANT SELECT, LOCK TABLES ON `myschema`.* TO 'dump'@'%'
Run Code Online (Sandbox Code Playgroud)
我想使用dump用户转储所有数据(包含的触发器和过程).我用以下方式调用mysqldump:
mysqldump -u dump -p --routines --triggers --quote-names --opt \
--add-drop-database --databases myschema > myschema.sql
Run Code Online (Sandbox Code Playgroud)
除了触发器之外,转储文件一切正常,它们都丢失了 !!
如果我使用root MySQL用户尝试mysqldump,则会正确转储触发器:
mysqldump -u root -p --routines --triggers --quote-names --opt \
--add-drop-database --databases myschema > myschema.sql
Run Code Online (Sandbox Code Playgroud)
所以,我想这是一个perms问题... 我的转储 MySQL用户正确执行完全转储所需的额外资金是多少?
试着
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
Run Code Online (Sandbox Code Playgroud)
入门
错误1064(42000):您的SQL语法有错误; 检查与MySQL服务器版本对应的手册,以获得正确的语法,以便在第1行的"IDENTIFIED BY"root"WITH GRANT OPTION"附近使用.
注意:在MySQL 5.7中尝试时也一样
也试过了
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
Run Code Online (Sandbox Code Playgroud)
入门
错误1410(42000):您不能使用GRANT创建用户
MySQL(8.0.11.0)用户名/密码是root/root.
我的查询:
select libelle,credit_initial,disponible_v,sum(montant) as montant
FROM fiche,annee,type where type.id_type=annee.id_type and annee.id_annee=fiche.id_annee
and annee = year(current_timestamp) GROUP BY libelle order by libelle asc
Run Code Online (Sandbox Code Playgroud)
这是一个棘手的问题,我有以下输出:
mysqldump:收到错误:1045:尝试连接时用户'root'@'localhost'(使用密码:YES)拒绝访问
尝试mysqldump在Windows XP上导出数据库时.用户名为root,密码正确且仅包含字母数字字符.我尝试了不同的情况,有/没有引号,指定使用-u和-p,指定使用--user=和--password=其他指定用户/密码等的方法,指定主机(它是全局的),甚至指定数据库使用--databases而不是只是空白.使用密码时错误始终相同,除非"否",否则始终相同.我已尝试通过搜索找到许多修复但没有成功.一个修复建议检查mysql.conf,但Windows构建似乎没有.凭证(实际上是命令行参数)与mysql.exe完美配合 - 这个问题似乎只影响mysqldump.exe.
非常感谢您的帮助.
mysql localhost access-denied windows-xp-sp3 mysql-error-1045
我的服务器运行CentOS 6.4,使用带有CentOS的repos的yum安装了MySQL 5.1.69,并使用yum和ius的repos安装了PHP 5.4.16.Edit3升级到MySQL服务器版本:5.5.31由IUS社区项目分发,错误仍然存在.然后将库更改为mysqlnd,似乎消除了错误.尽管如此,需要知道为什么这个错误有时只会出现.
使用PDO并使用创建PDO对象时PDO::ATTR_EMULATE_PREPARES=>false,我有时会收到以下错误:
Table Name - zipcodes
Error in query:
SELECT id FROM cities WHERE name=? AND states_id=?
SQLSTATE[HY000]: General error: 2014 Cannot execute queries while other unbuffered queries are active. Consider using PDOStatement::fetchAll(). Alternatively, if your code is only ever going to run against mysql, you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.
File Name: /var/www/initial_install/build_database.php
Line: 547
Time of Error: Tuesday July 2, 2013, 5:52:48 PDT
Run Code Online (Sandbox Code Playgroud)
第547行是最后一行:
$stmt_check_county->execute(array($data[5],$data[4]));
if(!$county_id=$stmt_check_county->fetchColumn())
{ …Run Code Online (Sandbox Code Playgroud) 我的MySQL数据库中有大约一百个存储例程,其中大多数都有'root'作为定义器.
我有另一个名为'abc'的mysql帐户,如何将所有例程的定义者更改为'abc'.
如果我只能将"MySQL"服务器作为"abc"用户而不是"root"访问MySQL服务器,是否可以这样做
mysqldump:得到错误:1449:使用LOCK TABLES时,指定为定义者的用户('root'@'192.200.1.16')不存在
请对上述错误给出解决方案.
当Homebrew更新以支持MySQL 8的第一个通用版本(8.0.11)时,任何人都有内幕消息吗?我似乎无法通过搜索找到它,但我打赌有人在这里知道:)
今天早上我的mySQL在我的系统上自动从5.7到8.0.11更新.
在此之后,我无法看到任何数据库或在phpMyAdmin上运行任何命令.我尝试做的每件事都会导致涉及mysql.infoschema表格的一些错误.
我得到的大多数错误都是这样的: #1449 - The user specified as a definer ('mysql.infoschema'@'localhost') does not exist
我已经搜索了错误并尝试运行命令来创建用户GRANT ALL ON *.* TO 'someuser'@'%' IDENTIFIED BY 'complex-password';
FLUSH PRIVILEGES;,如此答案中所示.但我不断收到语法错误.
在搜索涉及版本5.7和8.0.11的突发问题后,我在此站点中看到系统表已移至InnoDB.
MySQL的第一个存储引擎 - MyISAM,到目前为止在MySQL中可用.MySQL 5.7仍然使用MyISAM作为MySQL模式中的MySQL权限表,但在MySQL中它们被移动到InnoDB.
我甚至尝试了8.0.11的全新安装,所以我可以导入我的数据库,但是当我尝试以root身份登录时,我得到了相同的#1449错误.
PS.我正在使用Fedora 28.
我正在尝试在 ubuntu os 上列出 mysql 数据库中的所有表。但我一直收到这个错误;
mysql> use mysql;
Database changed
mysql> show tables;
ERROR 1449 (HY000): The user specified as a definer ('mysql.infoschema'@'localhost') does not exist
Run Code Online (Sandbox Code Playgroud)
我检查了我的 mysql 版本:
mysql Ver 8.0.20 for Linux on x86_64 (MySQL Community Server - GPL)
Run Code Online (Sandbox Code Playgroud)
所以它似乎是mysql的最新版本。
我该如何解决这个错误?
请帮忙
当我尝试通过我的应用程序检索数据或将数据插入我的数据库时,我收到上述错误.proc代码如下
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_createUser`(
IN p_name VARCHAR(20),
IN p_username VARCHAR(20),
IN p_password VARCHAR(20)
)
BEGIN
if ( select exists (select 1 from tbl_user where user_username = p_username) ) THEN
select 'Username Exists !!';
ELSE
insert into tbl_user
(
user_name,
user_username,
user_password
)
values
(
p_name,
p_username,
p_password
);
END IF;
END $$
DELIMITER ;
Run Code Online (Sandbox Code Playgroud)
但是,当我在sqlyog中运行以下查询时,它返回1:
SELECT EXISTS(SELECT 1 FROM mysql.user WHERE USER = 'root');
我正在使用XAMPP和Python来制作我的应用程序.提前致谢.