天津市网站建设_网站建设公司_AJAX_seo优化
2026/1/7 21:51:59 网站建设 项目流程

openeuler 24.03 安装 mysql

yum install tar wget numactl## 解决MySQL 5.7 启动报错:libncurses.so.5和libtinfo.so.5缺失问题
ln -s /usr/lib64/libncurses.so.6 /usr/lib64/libncurses.so.5
ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5## 检查端口占用
sudo netstat -tlnp | grep 3306
sudo lsof -i :3306wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz
tar -xvf mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz mv mysql-5.7.44-linux-glibc2.12-x86_64 /usr/local/mysql
touch /etc/my.cnf  ## 内容在最后mkdir -p /data/mysqlgroupadd mysql
useradd -r -g mysql mysql
chown mysql:mysql -R /data/mysqlcd /usr/local/mysql/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initializecat /data/mysql/error.log  ## 默认密码在这里cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
service mysql start## 允许远程访问
./mysql -u root -p 
SET PASSWORD = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
use mysql;
update user set host = '%' where user = 'root';
FLUSH PRIVILEGES;

my.cnf

#my.cnf for MySQL 5.7
#
[client]
port            = 3306
socket          = /tmp/mysql.sock[mysqld]
port        = 3306
socket      = /tmp/mysql.sock
pid_file    = /data/mysql/mysql.pid
basedir     = /usr/local/mysql/
datadir     = /data/mysql/
default_time_zone = +08:00
log_timestamps = system
skip_name_resolve = ON# =================== 慢日志配置开始 ===================
# 慢日志是否开启,ON=开启,OFF=关闭。
slow_query_log = OFF
# 慢查询时间(秒)。
long_query_time = 3
# 慢日志文件路径。
slow_query_log_file = /data/mysql/mysql_slow_query.log
# 从库慢日志是否开启(主库无需理会),ON=开启,OFF=关闭。
log_slow_slave_statements = OFF
# 记录(ALTER TABLE、ANALYZE TABLE等)到慢查询日志中,ON=开启,OFF=关闭。
log_slow_admin_statements = OFF
# 记录所有未带索引的查询到慢日志中,ON=开启,OFF=关闭。
log_queries_not_using_indexes = OFF
# 限制所有未带索引的查询记录频率(每分钟条数)。
log_throttle_queries_not_using_indexes = 0
# 超过多少行的查询才会被记录到慢日志中。
min_examined_row_limit = 0
# =================== 慢日志配置结束 ===================log_error_verbosity = 1
# MySQL错误日志文件路径
log_error = /data/mysql/error.logskip-external-locking
lock_wait_timeout = 3600
max_allowed_packet = 16M
table_open_cache = 1024
table_definition_cache = 1024
sort_buffer_size = 8M
join_buffer_size = 8M
net_buffer_length = 8K
read_buffer_size = 8M
read_rnd_buffer_size = 1M
thread_cache_size = 200
bulk_insert_buffer_size = 16M
query_cache_size = 32M
tmp_table_size = 32M
performance_schema_max_table_instances = 500
thread_stack = 512K
interactive_timeout = 28800
wait_timeout = 28800
max_heap_table_size = 32M
lower_case_table_names = 0explicit_defaults_for_timestamp = true
#skip-networking
#bind-address = 127.0.0.1 
max_connections = 500
max_connect_errors = 100000
open_files_limit = 65535# binlog
log_bin=mysql-bin
binlog_format = ROW
server_id   = 100
expire_logs_days = 7
max_binlog_cache_size = 128M
max_binlog_size = 1G
binlog_cache_size = 2Mgtid_mode = ON
# GTID一致性是否启用(ON=强制一致性,WARN=仅警告,OFF=不检查)
enforce_gtid_consistency = ON
master_info_repository = TABLE
relay_log_info_repository = TABLE
# 启用后从库会将复制事件写入自身二进制日志。
log_slave_updates = ON
# 应尽可能的不要使用mysql_native_password,未来在MySQL9.0版本中将被彻底删除。
#default_authentication_plugin=mysql_native_password# innodb
transaction_isolation = REPEATABLE-READ
default_storage_engine = InnoDB
innodb_buffer_pool_instances = 4
innodb_file_per_table = 1
innodb_data_home_dir = /data/mysql/
innodb_data_file_path = ibdata1:64M:autoextend
innodb_log_group_home_dir = /data/mysql/
innodb_buffer_pool_size = 10G
innodb_log_file_size = 512M
innodb_log_buffer_size = 32M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
innodb_log_files_in_group = 2
innodb_read_io_threads = 2
innodb_write_io_threads = 2
innodb_purge_threads = 1
innodb_page_cleaners = 1
innodb_io_capacity = 4000
innodb_io_capacity_max = 8000
innodb_buffer_pool_load_at_startup = ON
innodb_buffer_pool_dump_at_shutdown = ON
innodb_flush_method = fsync
innodb_print_all_deadlocks = OFF
innodb_status_output_locks = OFF
innodb_status_output = OFF
innodb_max_undo_log_size = 1G
innodb_undo_log_truncate = ON
innodb_commit_concurrency = 0[mysqldump]
quick[myisamchk]
key_buffer_size = 128M
myisam_sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M

mysql 5.7 gtid主从

前提

2台服务器 192.168.50.14(主) 192.168.50.15(从)

192.168.50.14 my.cnf 文件 关键内容:

server_id=100
gtid_mode=ON
enforce_gtid_consistency=ON
read_only = ON

192.168.50.15 my.cnf 文件 关键内容:

server_id=101
gtid_mode=ON
enforce_gtid_consistency=ON
read_only = ON

连接master, 执行以下操作 创建用户并授权

CREATE USER 'mysqlMaster'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
GRANT ALL PRIVILEGES ON *.* TO 'mysqlMaster'@'%';
flush privileges;

连接slave, 执行以下操作

CHANGE MASTER TO 
master_host = '192.168.50.14',
master_port = 3306,
master_user = 'mysqlMaster',
master_password = '123456',
master_auto_position=1;flush privileges;start slave;
stop slave;
reset slave;show slave status;

如果显示下面内容,就OK了
Slave_IO_Running YES
Slave_SQL_RUNNing YES

遇到的错误

Error 'Operation ALTER USER failed for 'root'@'localhost'' on query.

stop slave;
update user set host = 'localhost' where user = 'root';
FLUSH PRIVILEGES;
start slave;

添加从数据库

注意修改 server_id 即可
方式同上面的方式,不需要建立数据库或者表,如果数据量很大,第一次同步的时候会很耗时。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询