Specifying Account Names When using - binlog_format=mixed , DML operations that read data from grant tables are written to the binary log as row events to make the operations safe for mixed-mode replication. SELECT ... FOR SHARE  statements that read data from grant tables report a warning. With the  FOR SHARE  clause, read locks are not supported on grant tables. DML operations that read data from grant tables and are executed using the  SERIALIZABLE  isolation level report a warning. Read locks that would normally be acquired when using the  SERIALIZABLE  isolation level are not supported on grant tables. MySQL account names consist of a user name and a host name, which enables creation of distinct accounts for users with the same user name who connect from different hosts. This section describes the syntax for account names, including special values and wildcard rules. In most respects, account names are similar to MySQL role names, with some differences described at Section 6.2.5, “Specifying Role Names” . Account names appear in SQL statements such as  CREATE USER ,  GRANT , and  SET PASSWORD  and follow these rules: MySQL stores account names in grant tables in the  mysql  system database using separate columns for the user name and host name parts: For additional detail about the properties of user names and host names as stored in the grant tables, such as maximum length, see Grant Table Scope Column Properties. 1214 •For access-checking purposes, comparisons of User values are case-sensitive. Comparisons of Host values are not case-sensitive. •Other grant tables indicate privileges an account has for databases and objects within databases. These tables have  User  and  Host  columns to store the account name. Each row in these tables associates with the account in the  user  table that has the same  User  and  Host  values. •The  user  table contains one row for each account. The  User  and  Host  columns store the user name and host name. This table also indicates which global privileges the account has. •A reference to the  CURRENT_USER  or  CURRENT_USER()  function is equivalent to specifying the current client’s user name and host name literally. •The user name and host name parts, if quoted, must be quoted separately. That is, write  ’me’@’localhost’ , not  ’me@localhost’ . The latter is actually equivalent to ’me@localhost’@’%’ . •Quote user names and host names as identifiers or as strings, using either backticks ( ‘ ), single quotation marks ( ’ ), or double quotation marks ( " ). For string-quoting and identifier-quoting guidelines, see Section 9.1.1, “String Literals” , and Section 9.2, “Schema Object Names” . •The user name and host name need not be quoted if they are legal as unquoted identifiers. Quotes must be used if a  user_name  string contains special characters (such as space or  - ), or a  host_name  string contains special characters or wildcard characters (such as  .  or  % ). For example, in the account name ’test-user’@’%.com’ , both the user name and host name parts require quotes. •The  @’ host_name ’  part is optional. An account name consisting only of a user name is equivalent to ’ user_name ’@’%’ . For example,  ’me’  is equivalent to  ’me’@’%’ . •Account name syntax is  ’ user_name ’@’ host_name ’ . 6.2.4 Specifying Account Names