Не могу создать пользователя mysql centos 7

базу с полями создал. теперь надо выдать права определённому пользователю:
г) Теперь даем доступ для пользователя “asterisk_user” с паролем “Some_Pass_Aster01? к базе “asterisk” только с локалхоста.

mysql> grant all on asterisk.* to 'asterisk_user'@'localhost' identified by 'Some_Pass_Aster01';
mysql> flush privileges;

вижу такую ошибку:

mysql> grant all on asterisk.* to 'asterisk_user'@'localhost' identified by 'Some_Pass_Aster01';
ERROR 3009 (HY000): Column count of mysql.user is wrong. Expected 45, found 42. Created with MySQL 50568, now running 50736. Please use mysql_upgrade  to fix this error.

пытаюсь создать юзера и тоже ошибка:

mysql> CREATE USER 'asterisk_user'@'localhost' IDENTIFIED BY 'Some_Pass_Aster01';
ERROR 3009 (HY000): Column count of mysql.user is wrong. Expected 45, found 42. Created with MySQL 50568, now running 50736. Please use mysql_upgrade to fix this error.

ввожу команду из подсказки:

Please use mysql_upgrade  to fix this error

и вижу:

mysql> mysql_upgrade -u root -p;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use  near 'mysql_upgrade -u root -p' at line 1

а дальше еще:
д) Теперь указываем Asterisk писать CDR (так называется система логов) в базу MySQL. Для этого откроем файл для редактирования: nano /etc/asterisk/cdr_mysql.conf
и вместо записи [global] которая там есть (вместо неё) пишем:

[global] 
hostname=localhost 
dbname=asterisk 
table=cdr 
password=Some_Pass_Aster01 
user=asterisk_user 
sock=/var/lib/mysql/mysql.sock

додумал что надо обновлять не в мускуле)

[root@localhost ~]# mysql_upgrade -u root -p
Enter password:
Checking if update is needed.
Checking server version.
Running queries to upgrade MySQL server.
mysql_upgrade: (non fatal) [ERROR] 1728: Cannot load from mysql.proc. The table is probably corrupted
mysql_upgrade: (non fatal) [ERROR] 1545: Failed to open mysql.event
Checking system database.
mysql.columns_priv                                 OK
mysql.db                                           OK
mysql.engine_cost                                  OK
mysql.event                                        OK
mysql.func                                         OK
mysql.general_log                                  OK
mysql.gtid_executed                                OK
mysql.help_category                                OK
mysql.help_keyword                                 OK
mysql.help_relation                                OK
mysql.help_topic                                   OK
mysql.host                                         OK
mysql.innodb_index_stats                           OK
mysql.innodb_table_stats                           OK
mysql.ndb_binlog_index                             OK
mysql.plugin                                       OK
mysql.proc                                         OK
mysql.procs_priv                                   OK
mysql.proxies_priv                                 OK
mysql.server_cost                                  OK
mysql.servers                                      OK
mysql.slave_master_info                            OK
mysql.slave_relay_log_info                         OK
mysql.slave_worker_info                            OK
mysql.slow_log                                     OK
mysql.tables_priv                                  OK
mysql.time_zone                                    OK
mysql.time_zone_leap_second                        OK
mysql.time_zone_name                               OK
mysql.time_zone_transition                         OK
mysql.time_zone_transition_type                    OK
mysql.user                                         OK
Upgrading the sys schema.
Checking databases.
asterisk.cdr                                       OK
sys.sys_config                                     OK
Upgrade process completed successfully.
Checking if update is needed.

проблема решена, расходимся

mysql> CREATE USER 'asterisk_user'@'localhost' IDENTIFIED BY 'Some_Pass_Aster01';
ERROR 3009 (HY000): Column count of mysql.user is wrong. Expected 45, found 42. Created with MySQL 50568, now running 50736. Please use mysql_upgrade to fix this error.

GRANT ALL PRIVILEGES ON * . * TO 'asterisk_user'@'localhost';
FLUSH PRIVILEGES;

исправил, обновив из центоса мускул

[root@localhost ~]# mysql_upgrade -u root -p
Enter password:
Checking if update is needed.
Checking server version.
Running queries to upgrade MySQL server.
mysql_upgrade: (non fatal) [ERROR] 1728: Cannot load from mysql.proc. The table is probably corrupted
mysql_upgrade: (non fatal) [ERROR] 1545: Failed to open mysql.event
Checking system database.
mysql.columns_priv                                 OK
mysql.db                                           OK
mysql.engine_cost                                  OK
mysql.event                                        OK
mysql.func                                         OK
mysql.general_log                                  OK
mysql.gtid_executed                                OK
mysql.help_category                                OK
mysql.help_keyword                                 OK
mysql.help_relation                                OK
mysql.help_topic                                   OK
mysql.host                                         OK
mysql.innodb_index_stats                           OK
mysql.innodb_table_stats                           OK
mysql.ndb_binlog_index                             OK
mysql.plugin                                       OK
mysql.proc                                         OK
mysql.procs_priv                                   OK
mysql.proxies_priv                                 OK
mysql.server_cost                                  OK
mysql.servers                                      OK
mysql.slave_master_info                            OK
mysql.slave_relay_log_info                         OK
mysql.slave_worker_info                            OK
mysql.slow_log                                     OK
mysql.tables_priv                                  OK
mysql.time_zone                                    OK
mysql.time_zone_leap_second                        OK
mysql.time_zone_name                               OK
mysql.time_zone_transition                         OK
mysql.time_zone_transition_type                    OK
mysql.user                                         OK
Upgrading the sys schema.
Checking databases.
asterisk.cdr                                       OK
sys.sys_config                                     OK
Upgrade process completed successfully.
Checking if update is needed.

далее создал пользователя

[root@localhost ~]# mysql -uroot -p

mysql> CREATE USER 'asterisk_user'@'localhost' IDENTIFIED BY 'Some_Pass_Aster01';
Query OK, 0 rows affected (0,00 sec)

mysql> GRANT ALL PRIVILEGES ON * . * TO 'asterisk_user'@'localhost';
Query OK, 0 rows affected (0,00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0,00 sec)

далее по инструкции по астеру:

“asterisk” только с локалхоста.
mysql> grant all on asterisk.* to 'asterisk_user'@'localhost' identified by 'Some_Pass_Aster01';
Query OK, 0 rows affected, 1 warning (0,00 sec)
mysql> flush privileges;

//можно проверить в phpmyadmin root root

2 Likes