1

このストアドプロシージャを実行しようとしました:

DELIMITER |
DROP PROCEDURE IF EXISTS HelloWorld|
CREATE PROCEDURE HelloWorld()
BEGIN
UPDATE sites_niche SET `short_review` = REPLACE(`short_review`, '’',"'");
END |
DELIMITER ;

しかし、それは私にこれを教えてくれます:

ユーザー 'bestcam728'@'%' のデータベース 'bestcamdir_main' へのアクセスが拒否されました

問題は、私がすでにデータベースにログインしていることです..そのエラーにより、ストアドプロシージャを作成できません...どうすればこれを克服できますか? また、新しいユーザーを作成できないという問題もあります

4

3 に答える 3

3

コマンドを実行SHOW GRANTSして、ユーザー 'bestcam728'@'%' が持つすべての権限を表示します。

'bestcam728'@'%' に権限を付与するには、root として接続し、GRANTステートメントを使用して必要な権限を付与します。CREATE または CREATE ROUTINE 権限がないようです。これらの権限をグローバルに付与することも、特定のデータベースに対して付与することもできます -

-- Grant database privileges
GRANT CREATE ON `bestcamdir_main`.* TO 'bestcam728'@'%';
GRANT CREATE ROUTINE ON `bestcamdir_main`.* TO 'bestcam728'@'%';

-- Grant global privileges
GRANT CREATE ON *.* TO 'bestcam728'@'%';
GRANT CREATE ROUTINE ON *.* TO 'bestcam728'@'%';

次に、'bestcam728'@'%' として再接続し、手順の作成を再試行してください。

于 2012-09-11T10:35:11.443 に答える
1

mysql.dbおよび場合によってはmysql.userの権限を確認してください。

于 2012-09-11T10:05:40.943 に答える
0

ワークベンチを使用して、rootとしてログインします。次に、ユーザーがストアドプロシージャを作成するための適切な権限を付与できます。

于 2012-09-11T10:05:02.060 に答える