一次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 ‘*****’

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

posted @ 2017-11-09 11:44  零之寒怒  阅读(4369)  评论(0编辑  收藏  举报