zoukankan      html  css  js  c++  java
  • 一次Linux下卸载安装mysql-5.1.73的折腾

    安装准备: rpm -qa|grep -i mysql

    命令敲完后出来一堆mysql,各式各样的已安装mysql包,什么-java 、-Python等等不一而足,一看懵了!

    发挥不败精神,先了解情况,通过了解发现这是一台全新服务器,这些都是安装菜鸡把系统自带包都打上了,考虑再三还是卸载吧,简单迅速!

    卸载:rpm -ev 

    使用rpm -ev 卸载后,使用whereis mysql或者find / -name mysql查看还有哪些目录留存,使用rm -rf 删除目录,删就删个彻底!!!!

    ps:如果报error:Failed dependencies:.........等请带上 --nodeps

    附上繁琐的卸载过程图:

    卸载完毕,进入yum简单安装环节:yum install (-y 等多个参数可选)

    贴上安装命令:yum install -y mysql-server mysql-devel

    安装完毕,启动mysql,问题来了,启动不起来!没有任何反应,甚至没有错误日志!!!只有false

    后来考虑到是不是SElinux阻止了,看了看果然是因为SElinux,执行国人的SElinux赶尽杀绝策略,关掉!!!

    /usr/sbin/sertatus -v 或者getenforce   ## 查看SElinux 状态,enabled 为开启,disable为关闭

    临时关闭使用:setenforce 0             ## 0为关闭 1为开启

    永久关闭请使用修改配置文件的办法,修改完成后需要重启服务器才能生效。

    修改配置文件:/etc/selinux/config

    将SELINUX=enforcing  改为SELINX=disable即可

    再次使用:service mysqld start 数据库启动成功,呵呵下!!!!

     下面进行mysql的基本配置以图片解决(做下面的操作前,请记得service mysqld stop哈,不然出问题自己负责!):

    设置mysql随服务器启动而启动,其他软件同理:

    给mysql换个新家,即换个自己喜欢的目录,不默认(默认有什么不好,你懂的),顺便给个软链接:

    接下来就是配置文件咯(/etc/my.cnf):

    贴上某个游戏公司工作,优化后的数据库配置,以备不是之需!!!

    [mysqld]
    ########basic settings########
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    user=mysql
    character-set-server=utf8
    back_log = 600 #当达到最大连接数时,可以被存在堆栈中的连接
    max_connections=1000 #最大连接数
    max_prepared_stmt_count=124000
    max_connect_errors = 6000 #对同一主机,超过6000中断错误连接,将禁止连接
    lower_case_table_names = 1  #不区分大小写
    table_open_cache= 4096 # 每打开一个表,读入缓存的数据大小
    table_definition_cache=8192
    open_files_limit = 65535 #打开的文件的描述符的限制
    max_allowed_packet = 4M  #接受的数据包的大小,此为仅当需要时才会分配内存大小
    query_cache_limit = 2M #指定单个查询能够使用的缓冲区大小,默认1M
    ft_min_word_len = 4    #分词词汇最小长度
    transaction_isolation = REPEATABLE-READ #事件隔离级别,此为默认
    
    
    # Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    
    #######log settings########
    binlog_cache_size = 1M #一个事件,在没有提交时,产生的日志记录到Cache中的大小
    log_bin = /data/mysql-logs/binlog/mysql-bin
    binlog_format = mixed
    slow_query_log = 1
    long_query_time = 1 #慢查询时间 超过1秒则为慢查询
    slow_query_log_file = /data/mysql-logs/slow/mysql-slow.log
    expire_logs_days = 90   #超过90天的binlog删除
    log_queries_not_using_indexes = 1
    log_slow_admin_statements = 1
    log_slow_slave_statements = 1
    min_examined_row_limit = 100
    
    ##########InnoDB############
    skip-external-locking #MySQL选项以避免外部锁定。该选项默认开启
    default-storage-engine = InnoDB #默认存储引擎
    innodb_file_per_table = 1 #每个数据库的每个表生成一个数据空间
    innodb_open_files = 2000   #限制能够打开的表的数据,默认300
    innodb_buffer_pool_size = 64M #使用一个缓冲池来保存索引和原始数据
    innodb_thread_concurrency = 0 #默认设置0,表示不限制并发数
    innodb_flush_log_at_trx_commit = 2 #每次提交事件都会写入日志
    innodb_log_buffer_size = 2M   #确定写日志文件所用的内存大小
    innodb_log_file_size = 32M    #确定数据日志的文件大小
    innodb_log_files_in_group = 3 #以循环方式将日志文件写到多个文件
    innodb_max_dirty_pages_pct = 90 #主线程刷新缓存池中的数据,使无用数据少于90%
    innodb_lock_wait_timeout = 120  #事件在被回滚之前可以等待一个锁定的超时秒数
    bulk_insert_buffer_size = 8M    #批量插入缓存大小
    myisam_sort_buffer_size = 8M    #恢复表时使用的缓冲区大小
    myisam_max_sort_file_size = 10G #使用快速排序方法来创建一个索引
    myisam_repair_threads = 1       #在Repair by sorting过程中创建MyISAM表索引
    interactive_timeout = 28800     #服务器关闭交互式连接前等待活动的秒数
    wait_timeout = 28800            #服务器关闭非交互连接之前等待活动的秒数
    
    [mysqldump]
    quick
    max_allowed_packet = 16M #服务器发送和接受的最大包长度
    
    [myisamchk]
    key_buffer_size = 8M   #指定用于索引的缓冲区大小
    sort_buffer_size = 8M  #执行排序使用的缓冲大小,增加ORDER BY速度
    read_buffer_size = 4M  #读入缓存区大小,对表进行扫描请求分配的读入缓冲区
    tmp_table_size = 16M   #heap(堆积)表缓冲大小
    read_rnd_buffer_size = 8M   #随机读缓存区大小,对任意顺序查询分配读入缓冲区,用于顺序查询(禁止设置过大,避免消耗内存)
    join_buffer_size = 8M  #联合查询操作所能使用的缓冲区大小
    thread_cache_size = 8  #重新利用保存在缓存中的线程的数量
    query_cache_size = 8M  #查询缓冲大小
    write_buffer = 4M
    
    [mysqld_safe]
    log-error=/data/mysql-logs/error/mysql-error.log
    pid-file=/var/run/mysqld/mysqld.pid
    
    
    
    [client]
    default-character-set=utf8
    View Code

    如果粘贴上面的配置文件直接使用,请记得删除mysql目录下面的ib_logfile0和ib_logfile1文件,至于为什么自己好好读读配置文件,多看看mysql的文章,这里不做描述,呵呵!

    最后几步操作,日志文件分开存放(记得赋权哈,这里以mysql-logs为例   chown -R mysql:mysql mysql-logs)

    • 在数据目录下开辟一个专用于数据库日志存放的目录:/data/mysql-logs
    • 在mysql-logs下分别建立mkdir error 、mkdir bin-log 、mkdir slow三大数据库日志存放目录

    顺带说下这几个日志的意义:

    error:错误日志,用于故障事件的排查

    bin-log:二进制日志,与完备配合,用于重大故障发生后的数据恢复

    slow:慢查询了,你想优化总要知道哪里能优化吧!!哈哈哈!

    启动mysql:service mysqld start

    完成后,记得设个密码:mysqladmin -uroot password ‘*****’

    至此,一个数据库的部署算是基本完成了。。。

  • 相关阅读:
    taobao 爬虫基本思路分享
    浅谈python中字典append 到list 后值的改变问题
    滑动验证码验证
    selenium:css_selector定位详解
    01分数规划
    可持久化并查集(草稿)
    后缀自动机求endpos集大小
    伯努利数公式
    HDU 6619 Horse 斜率优化dp
    别人的回文自动机
  • 原文地址:https://www.cnblogs.com/lzhn/p/7808632.html
Copyright © 2011-2022 走看看