2015-01-07 4 views
-2

클라우드 SQL 버전 & DB 엔진에서 제거 가져옵니다 : 현재 우리의 CLOUD MYSQL 버전은 5.6.21이고, n은 DB 엔진은사용자 및 권한 부여 실행 권한은 자동으로 만 클라우드 SQL을

1. MySQL의에서 사용자 만들기 INNODB입니다

사용자 'USERNAME'@ '호스트 이름'을 (를) '암호'로 식별;

하지만이 사용자는 mysql.user 테이블에 영구 저장되지 않습니다. 이 사용자 제거 표에서 문제가 스크립트 측면 또는 서버 재시작시 발생하고 생성 된 사용자 암호가 비어있는 경우가 있습니다.

2. 권한 부여 실행 권한 부여 절차가 올바로 작동하지 않습니다.

프로 시저 Schemaname에서 실행 권한 부여. Spname To '사용자 이름'@ '%';

이 실행 권한은 얼마 동안 작동하지만 허가 된 사용자에 대해서는 권한이 즉시 사라집니다.

다른 용액의 열 역학은 우리는을 시도 :

1.Flush 테이블-후 모든 액세스 권한 부여를주기 후 사용자에게

2.Flush Privilges- 만들기/액세스

을 취소하지만이 두 솔루션입니다 또한 Google Cloud Sql에서 작동하지 않아도 여전히 문제는 동일하게 유지됩니다.

하지만 이번 호에는 로컬 MySQL 버전이 없으며 Google Cloud Sql에서만 재현이 가능합니다.

우리는 이번 호에 당황하고 있습니다. 프론트 엔드 App.

사람은 내가이 클라우드 SQL 인스턴스를 생존하지 않는 사용자를 생성한다는 사실을 재현 할 수 아니에요 Google 클라우드 SQL에서이 문제 ...

답변

2

를 해결하려면 방법을 알고 있습니다.

다음은 테스트 한 방법입니다 (일부 민감한 정보는 (edited)으로 바꿉니다).

먼저 기존 인스턴스에 연결하고 xxx이라는 사용자를 만들고 mysql.user 테이블에 표시되는지 확인했습니다.

$ mysql -uroot -proot -h (edited) 
mysql> SELECT host,user,password FROM mysql.user; 
+-----------+------+-------------------------------------------+ 
| host  | user | password         | 
+-----------+------+-------------------------------------------+ 
| localhost | root |           | 
| 127.0.0.1 | root |           | 
| ::1  | root |           | 
| localhost |  |           | 
| %   | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | 
+-----------+------+-------------------------------------------+ 
5 rows in set (0.07 sec) 

mysql> CREATE USER [email protected]'%' IDENTIFIED BY 'xxx'; 
Query OK, 0 rows affected (0.61 sec) 

mysql> SELECT host,user,password FROM mysql.user; 
+-----------+------+-------------------------------------------+ 
| host  | user | password         | 
+-----------+------+-------------------------------------------+ 
| localhost | root |           | 
| 127.0.0.1 | root |           | 
| ::1  | root |           | 
| localhost |  |           | 
| %   | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | 
| %   | xxx | *3D56A309CD04FA2EEF181462E59011F075C89548 | 
+-----------+------+-------------------------------------------+ 
6 rows in set (0.06 sec) 

mysql> Bye 

그런 다음 Cloud SQL 인스턴스를 다시 시작합니다.

$ gcloud sql instances restart (edited) --project (edited) 
Restarting Cloud SQL instance...done. 
Restarted [https://www.googleapis.com/sql/v1beta3/projects/(edited)/instances/(edited)]. 
$ 

그런 다음 다시 연결하여 mysql.user 테이블을 확인하십시오.

$ mysql -uroot -proot -h (edited) 
mysql> SELECT host,user,password FROM mysql.user; 
+-----------+------+-------------------------------------------+ 
| host  | user | password         | 
+-----------+------+-------------------------------------------+ 
| localhost | root |           | 
| 127.0.0.1 | root |           | 
| ::1  | root |           | 
| localhost |  |           | 
| %   | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | 
| %   | xxx | *3D56A309CD04FA2EEF181462E59011F075C89548 | 
+-----------+------+-------------------------------------------+ 
6 rows in set (0.07 sec) 

mysql> Bye 
$ 
관련 문제