问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

mysql 难题

发布网友 发布时间:2022-05-01 02:56

我来回答

2个回答

懂视网 时间:2022-05-01 07:17

原因:

1.程序可能在slave上进行了写操作

2.也可能是slave机器重起后,事务回滚造成的.

解决办法一:

mysql> slave stop;
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
mysql> slave start;

解决办法二:

首先停掉Slave服务:slave stop
到主服务器上查看主机状态:
记录File和Position对应的值

进入master

mysql> show master status;
+----------------------+----------+--------------+------------------+
| File                 | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+----------------------+----------+--------------+------------------+
| localhost-bin.000094 | 33622483 |              |                  | 
+----------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

 

然后到slave服务器上执行手动同步:

mysql> change master to 
> master_host=‘master_ip‘,
> master_user=‘user‘, 
> master_password=‘pwd‘, 
> master_port=3306, 
> master_log_file=localhost-bin.000094‘, 
> master_log_pos=33622483 ;
1 row in set (0.00 sec)
mysql> slave start;
1 row in set (0.00 sec)

 

mysql> show slave statusG
*************************** 1. row ***************************
........
            Master_Log_File: localhost-bin.000094
        Read_Master_Log_Pos: 33768775
             Relay_Log_File: localhost-relay-bin.000537
              Relay_Log_Pos: 1094034
      Relay_Master_Log_File: localhost-bin.000094
           Slave_IO_Running: Yes
          Slave_SQL_Running: Yes
            Replicate_Do_DB:

手动同步需要停止master的写操作! 

 

2、Slave failed to initialize relay log info structure from the repository

在my.cnf配置文件中添加如下项:

relay_log = /opt/mysql/logs/mysql-relay-bin

   重启mysql实例使其生效。

 

3、ERROR 1201 (HY000): Could not initialize master info structure; more error messages can be found in the MySQL error log

解决办法:

1.进入MySQL数据库默认的数据库存储目录:

/usr/local/mysql/var

这个目录根据实际情况而定,使用不同的安装方式,或是编译指定目录不同,这个目录也不一定相同,但只要找到数据库的存储目录就好。

 

2.删除以下两个文件:

master.info

relay-log.info

 

3.登陆数据库后,执行:

start slave;

返回如下信息:

mysql> start slave;
Query OK, 0 rows affected (0.00 sec)

mysql>

这样就说明问题已经解决了。

 

4、Starting MySQL..The server quit without updating PID file

解决办法:

1.可能是/usr/local/mysql/data/rekfan.pid文件没有写的权限 
解决方法 :给予权限,执行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data”  然后重新启动mysqld! 
2.可能进程里已经存在mysql进程 
解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9  进程号”杀死,然后重新启动mysqld! 
3.可能是第二次在机器上安装mysql,有残余数据影响了服务的启动。 
解决方法:去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。
4.mysql在启动时没有指定配置文件时会使用/etc/my.cnf配置文件,请打开这个文件查看在[mysqld]节下有没有指定数据目录(datadir)。 
解决方法:请在[mysqld]下设置这一行:datadir = /usr/local/mysql/data 
5.skip-federated字段问题 
解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。 
6.错误日志目录不存在 
解决方法:使用“chown” “chmod”命令赋予mysql所有者及权限 
7.selinux惹的祸,如果是centos系统,默认会开启selinux 
解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。 
但是没有解决,最后直接给/usr/local/mysql/data 目录 chmod 777 -R  /usr/local/myql/data 问题解决 应该是 权限问题,不能生成localhost.localdomain.pid 文件 
8.修改了机器名,报了个 Starting MySQL..The server quit without updating PID file (/opt/mysql/data/xxx.pid). 
xxx为新的机器名。 
进入mysql/data目录发现.pid 文件发现本地的是 localhost.pid 于是重命名为xxx.pid 启动就ok了

 

5、配置文件

mysql配置文件为my.cnf,它所在位置根据安装时设定的。
当mysqld服务启动的时候,默认会按一定的顺序读取配置文件的。
1
2
3
[root@zhu2 ~]# /opt/mysql/libexec/mysqld --verbose --help
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /opt/mysql/etc/my.cnf ~/.my.cnf
可以发现,系统默认是按/etc/my.cnf-----/etc/mysql/my.cnf----/usr/local/mysql/my.cnf的顺序读取配置文件的,当有多个配置文件时,mysql会以读取到的最后一个配置文件中的参数为准。
常用的配置参数有:
1
port = 3306
mysqld服务运行时的端口号,默认为3306
1
socket = /tmp/mysql.sock
socket文件是linux/unix系统特有的,用户在该环境下的客户端连接可以不通过tcp/ip网络,而直接使用socket文件连接
1
back_log = 300
该值为设定档mysql暂时停止响应新的请求前,短时间内有多少个请求可以存在堆栈内,如果系统在短时间内有很多的连接,应该增大该值,该值最好设置小于512的整数
1
skip-networking
不在tcp/ip端口上进行监听,所有的连接都是通过本地的socket文件连接,这样可以提高安全性,确定是不能通过网络连接数据库。
1
skip-locking
避免mysql的外部锁定,增强稳定性
1
skip-name-resolve
避免mysql对外部的连接进行DNS解析,若使用此设置,那么远程主机连接时只能使用ip,而不能使用域名
1
max_connections = 3000
指定mysql服务所允许的最大连接进程数,
1
max_connect_errors = 1000
每个主机连接允许异常中断的次数,当超过该次数mysql服务器将禁止该主机的连接请求,直到mysql服务重启,或者flushhosts命令清空host的相关信息
1
table_cache = 614k
表的高速缓冲区的大小,当mysql访问一个表时,如果mysql表缓冲区还有空间,那么这个表就会被打开通放入高速缓冲区,好处是可以更快速的访问表中的内容。
如果open_tables和opened_tables的值接近该值,那么久该增加该值的大小
1
max_allowed_packet = 4M
设定在网络传输中一次可以传输消息的最大值,系统默认为1M,最大可以是1G
1
sort_buffer_size = 16M
排序缓冲区用来处理类似orderby以及groupby队列所引起的排序,系统默认大小为2M,该参数对应分配内存是每个连接独占的,若有100个连接,实际分配的排序缓冲区大小为6*100;推荐设置为6M-8M
1
join_buffer_size 8M
联合查询操作所使用的缓冲区大小。
1
thread_cache_size = 64
设置threadcache池中可以缓存连接线程的最大数量,默认为0,该值表示可以重新利用保存在缓存中线程的数量,当断开连接时若缓存中还有空间,那么客户端的线程将被放到缓存中,如果线程重新被请求,那么请求将从缓存中读取,若果缓存中是空的或者是新的请求,那么线程将被重新创建。设置规律为:1G内存设置为8,2G内存设置为16,4G以上设置为64
1
query_cache_size = 64M
指定mysql查询缓冲区的大小,用来缓冲select的结果,并在下一次同样查询的时候不再执行查询而直接返回结果,根据Qcache_lowmem_prunes的大小,来查看当前的负载是否足够高
1
query_cache_limit = 4M
只有小于该值的结果才被缓冲,放置一个极大的结果将其他所有的查询结果都覆盖
1
tmp_table_size 256M
内存临时表的大小,如果超过该值,会将临时表写入磁盘
1
default_storage_engine = MYISAM
创建表时默认使用的存储引擎
1
log-bin=mysql-bin
打开二进制日志功能
1
key_buffer_size = 384M
指定索引缓冲区的大小,内存为4G时刻设置为256M或384M
1
read_buffer_size = 8M
用来做MYISAM表全表扫描的缓冲大小
。。。。。。。。。
常用配置实例
[client]
default-character-set = utf8
port = 3306
socket = /tmp/mysql.sock
[mysqld]
user = mysql
port = 3306
socket = /tmp/mysql.sock
basedir = /opt/mysql
datadir = /opt/mysql/var
log-error = /opt/mysql/var/mysql-error.log
pid-file = /opt/mysql/var/mysql.pid
log_slave_updates = 1
log-bin = /opt/mysql/var/mysql-bin
binlog_format = mixed
binlog_cache_size = 4M
max_binlog_cache_size = 8M
max_binlog_size = 1G
expire_logs_days = 90
key_buffer_size = 384M
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 16M
join_buffer_size = 2M
thread_cache_size = 8
query_cache_size = 32M
query_cache_limit = 2M
query_cache_min_res_unit = 2k
thread_concurrency = 32
table_cache = 614
table_open_cache = 512
open_files_limit = 10240
back_log = 600
max_connections = 5000
max_connect_errors = 6000
external-locking = FALSE
max_allowed_packet = 16M
default-storage-engine = MYISAM
thread_stack = 192k
transaction_isolation = READ-COMMITTED
tmp_table_size = 256M
max_heap_table_size = 512M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 64M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover
long_query_time = 2
slow_query_log
slow_query_log_file = /opt/mysql/var/slow.log
skip-name-resolve
skip-locking
skip-networking
innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 512M
innodb_data_file_path = ibdata1:256M:autoextend
innodb_file_io_threads = 4
innodb_thread_aoncurrency = 8
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 16M
innodb_log_file_size = 128M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_file_per_table = 0
[mysqldump]
quick
max_allow_packet = 64M
[mysql]
no-auto-rehash
safr-updates
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer = 2M
[mysqldump]
quick
max_allow_packet = 64M
[mysql]
no-auto-rehash
safe-updates
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout

 

mysql问题汇总

标签:

热心网友 时间:2022-05-01 04:25

对于已经有大量数据的数据表进行字段添加一般都是很忌讳的,通常再非必要情况下,更推荐直接把需要新增的字段放在一个新建的表中,然后和原有表做外键关联,非常不推荐在已有数据表中直接添加字段
首先是时间开销非常大,这个时间和表中已有数据量成正比,数据越多,耗时越长,操作过程中发生意外的不确定性越高
其次在执行过程中如果发现有问题,无法回滚
如果中途意外原因中断了操作有可能导致轻则整张表锁表不可访问,重则导致大面积数据丢失不好恢复等重问题.
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
用手柄玩实况足球2012, 实况足球12如何进行手柄设置,以及窗口模式的设置? 带娃去感受乡村的夏天,这53条乡村游线要收藏好 一般签名用什么笔 怎么去追女孩的技巧 清朝有多少汉人被封王 《水滴石穿》告诉我们什么道理 重庆有哪些批发市场 重庆有哪些大型市场 重庆最大零食批发市场 自研影像芯片马里亚纳X首发 OPPO Find X5 Pro详细评测 find x5pro512g没有货 oppofindx5pro什么时候出其他配色 如何快速去红枣的核 红枣应该怎样快速去核? 住院做过子宫肌瘤就不能入太平洋百万医疗保险吗? linux oralce库监听启动,找不到监听文件 linux下oracle数据库启动监听报目标主机不存在,但是hosts文件里已经配置... 一部关于医生的日本片,主角是《东京爱情故事》里的那个男主角,哪个朋友能告诉我电视的名字?谢谢! 表格怎么瘦身 关于爱的成语褒义的 excel表格怎么瘦身 男朋友不饱我睡觉了是不是不爱我了? 白景琦最爱的女人是谁 又爱又恨是为什么。 2007office表格怎么瘦身 表格瘦身怎么弄 领导爱骂人下属该怎么办? 北齐武成帝高湛爱他的皇嫂李祖娥吗 ? “爱而知其恶恶而知其美”的读音是什么? 马蹄冷水煮还是开水煮 马蹄有什么简单的煮法 清水马蹄煮多长时间 马蹄怎么煮? 雕花美甲是一种立体的雕花胶,在制作时应该注意哪些情况? 美甲雕花技巧有哪些? 华鲁恒升这只股票近期走势? 100股华鲁恒升股票上市至今变成多少股? 美甲彩绘的话,大概多少钱?类似下面这样的图片。 一般做个美甲雕花要多少钱?就是这种雕花 oppo怎么关闭游戏时的状态栏 招商银行一卡通网上转账(同城跨行转账),每次最高限额是多少? 怎么用ae在普通的视频里抠像,不是蓝屏绿屏的视频里? 王者荣耀状态栏怎么关闭 招行一卡通网银为什么总说我超出金额限制 对公账户开通后没有使用需要缴费吗? 招行电子卡和主卡额度一样吗 招行一卡通闪付卡可用额度是什么意思 招行生意一卡通回来有额度吗 win7原来不是这样选择任务栏颜色的,如何改回原来设置任务栏颜色设置呢?
  • 焦点

最新推荐

猜你喜欢

热门推荐