標籤:MySQL
問題背景:
有兩台mysql,一主一從,開發在代碼裡面連MySQL叢集,發現有報錯。連主庫單點OK,連從庫單點報錯:
Table ‘performance_schema.session_variables‘ doesn‘t existCould not create connection to database server. Attempted reconnect 3 times. Giving up.
在資料庫從庫執行mysql> show global status like "%abort%";,報如下錯誤:
mysql> show global status like "%abort%";ERROR 1146 (42S02): Table ‘performance_schema.global_status‘ doesn‘t exist
解決方案:
參考網上的解決文檔,在mysql從庫命令列執行命令:
sudo mysql_upgrade -u root -p –force
執行結果如下:
[[email protected] mysql]# mysql_upgrade -u root -p –forceEnter password: #這裡輸入資料庫root使用者的密碼Checking if update is needed.Checking server version.Running queries to upgrade MySQL server.Checking system database.mysql.columns_priv OKmysql.db OKmysql.engine_cost OKmysql.event OKmysql.func OKmysql.general_log OKmysql.gtid_executed OKmysql.help_category OKmysql.help_keyword OKmysql.help_relation OKmysql.help_topic OKmysql.innodb_index_stats OKmysql.innodb_table_stats OKmysql.ndb_binlog_index OKmysql.plugin OKmysql.proc OKmysql.procs_priv OKmysql.proxies_priv OKmysql.server_cost OKmysql.servers OKmysql.slave_master_info OKmysql.slave_relay_log_info OKmysql.slave_worker_info OKmysql.slow_log OKmysql.tables_priv OKmysql.time_zone OKmysql.time_zone_leap_second OKmysql.time_zone_name OKmysql.time_zone_transition OKmysql.time_zone_transition_type OKmysql.user OKUpgrading the sys schema.Checking databases.ApolloConfigDB.App OKApolloConfigDB.AppNamespace OKApolloConfigDB.Audit OK#中間省略若干業務庫和表locman.process_node_person OKlocman.process_type_base OKmonitor.dubbo_invoke OKoperations.app_install OKoperations.app_install_status OKoperations.auth_group OKoperations.auth_group_permissions OKoperations.auth_permission OKoperations.auth_user OKoperations.auth_user_groups OKoperations.auth_user_user_permissions OKoperations.business_admin OKoperations.celery_taskmeta OKoperations.celery_tasksetmeta OKoperations.cluster OKoperations.django_admin_log OKoperations.django_content_type OKoperations.django_migrations OKoperations.django_session OKoperations.djcelery_crontabschedule OKoperations.djcelery_intervalschedule OKoperations.djcelery_periodictask OKoperations.djcelery_periodictasks OKoperations.djcelery_taskstate OKoperations.djcelery_workerstate OKoperations.host_ps OKoperations.jenkins_jobs OKoperations.module OKoperations.operation_log OKoperations.project_center OKoperations.project_center_deploy_salt_minion OKoperations.project_deploy_info OKoperations.project_docker_info OKoperations.project_image_save OKoperations.receiver_hooks OKoperations.salt_master OKoperations.salt_minion OKoperations.salt_minion_module OKsys.sys_config OKUpgrade process completed successfully.Checking if update is needed.
然後再重啟資料庫從庫:
[[email protected] ~]# systemctl restart mysqld
然後開發再用代碼重新連MySQL,就可以正常連了。從庫執行show global status like "%abort%";也沒有報錯了
mysql> show global status like "%abort%";+------------------+-------+| Variable_name | Value |+------------------+-------+| Aborted_clients | 1 || Aborted_connects | 0 |+------------------+-------+2 rows in set (0.00 sec)mysql>
然後從庫檢查主從複製情況,一切正常
參考文檔:
https://stackoverflow.com/questions/31967527/table-performance-schema-session-variables-doesnt-exist
代碼連MySQL從庫報“Table ‘performance_schema.session_var”