Linux安装Mysql及其配置文件说明

查看CentOS自带mysql是否已安装。
输入:yum list installed | grep mysql
          ||yum list installed mysql*
          ||rpm -qa | grep mysql*


卸载自带安装的mysql数据库?
输入:yum -y remove mysql-libs.x86_64


若有多个依赖文件则依次卸载。
当结果显示为Complete!即卸载完毕。


查看yum库上的mysql版本信息(CentOS系统需要正常连接网络)。
输入:yum list | grep mysql 或 yum -y list mysql*


使用yum安装mysql数据库。
输入:yum -y install mysql-server mysql mysql-devel ,命令将:mysql-server、mysql、mysql-devel都安装好,当结果显示为“Complete!”即安装完毕。
注:安装mysql只是安装了数据库,只有安装mysql-server才相当于安装了客户端。


查看刚安装mysql数据库版本信息。
输入:rpm -qi mysql-server


#开机自启
chkconfig --add mysqld
chkconfig mysqld on


启动数据库:
service mysqld start或者/etc/init.d/mysqld start


重启mysql
service mysqld restart


停止mysql
service mysqld stop


创建root管理员:
mysqladmin -u root password 123456


netstat -nat端口查看




远程访问
开放防火墙的端口号
mysql增加权限:mysql库中的user表新增一条记录host为"%",user为"root"


Linux MySQL的几个重要目录


数据库目录
         /var/lib/mysql/
配置文件
         /usr/share /mysql(mysql.server命令及配置文件)
相关命令
         /usr/bin(mysqladmin mysqldump等命令)
启动脚本
         /etc/rc.d/init.d/(启动脚本文件mysql的目录)




登录:
          mysql -u root -p输入密码即可。
忘记密码:
          service mysqld stop
 
          mysqld_safe --user=root --skip-grant-tables
 
          mysql -u root
 
          use mysql
 
          update user set password=password("520mysql") where user="root";
 
          flush privileges;




mysql配置文件/etc/my.cnf中加入:
[mysql]
default-character-set=utf8


[mysqld]
skip-locking
character-set-server=utf8
max_connect_errors=1000000
key_buffer_size=64M
max_connections=1000
max_user_connections=500




配置文件详解:
[mysql] 
port=3306
#端口


socket=/data/mysql/mysql.sock 
#这个文件是用于socket连接的文件,使自己能够链接自己的数据库,出问题会导致mysql.service无法启动


default-character-set=utf8
#默认的编码格式utf-8


[mysqld]
user=mysql
# 使用的用户


**********************************************************************************************************************************
skip-locking 
#避免MySQL的外部锁定,减少出错几率增强稳定性。 
**********************************************************************************************************************************


default_storage_engine=InnoDB 
# 默认的引擎


socket=/data/mysql/mysql.sock 
#server的文件位置


pid-file=/data/mysql/mysql.pid
#进程代号为/data/mysql/mysql.pid


character-set-server=utf8
#server创建编码为utf-8


**********************************************************************************************************************************
key_buffer_size=32M
#key_buffer_size指定用于索引的缓冲区大小,增加它可得到更好的索引处理性能。对于内存在4GB左右的服务器该参数可设置为256M或384M。注意:该参数值设置的过大反而会是服务器整体效率降低!
**********************************************************************************************************************************


myisam_recover=FORCE,BACKUP 


max_allowed_packet=16M 


**********************************************************************************************************************************
max_connect_errors=1000000
#当链接错误达到次数为10的时候,封锁该host
**********************************************************************************************************************************


skip_name_resolve 
#当客户端连接数据库服务器时,服务器会进行主机名解析,并且当DNS很慢时,建立连接也会很慢。因此建议在启动服务器时关闭skip_name_resolve选项而不进行DNS查找。唯一的局限是之后GRANT语句中只能使用IP地址了,因此在添加这项设置到一个已有系统中必须格外小心。


**********************************************************************************************************************************
skip-networking 
#开启该选项可以彻底关闭MySQL的TCP/IP连接方式,如果WEB服务器是以远程连接的方式访问MySQL数据库服务器则不要开启该选项!否则将无法正常连接!
**********************************************************************************************************************************


# DATA STORAGE # 
datadir=/data/mysql/
#mysql安装目录


# BINARY LOGGING # 
log_bin=/data/mysql/mysql-bin
#如果你想让数据库服务器充当主节点的备份节点,那么开启二进制日志是必须的。如果这么做了之后,还别忘了设置server_id为一个唯一的值。就算只有一个服务器如果你想做基于时间点的数据恢复,这(开启二进制日志)也是很有用的:从你最近的备份中恢复(全量备份),并应用二进制日志中的修改(增量备份)。二进制日志一旦创建就将永久保存。所以如果你不想让磁盘空间耗尽,你可以用 PURGE BINARY LOGS 来清除旧文件,或者设置 expire_logs_days 来指定过多少天日志将被自动清除。记录二进制日志不是没有开销的,所以如果你在一个非主节点的复制节点上不需要它的话,那么建议关闭这个选项。


expire_logs_days=14 
sync_binlog=1 


# CACHES AND LIMITS # 
tmp_table_size=32M 
max_heap_table_size=32M 
query_cache_type=0 


query_cache_size=0 
#query cache查询缓存是一个众所周知的瓶颈,甚至在并发并不多的时候也是如此。 最佳选项是将其从一开始就停用,设置query_cache_size = 0(现在MySQL 5.6的默认值)并利用其他方法加速查询:优化索引、增加拷贝分散负载或者启用额外的缓存(比如memcache或redis)。如果你已经为你的应用启用了query cache并且还没有发现任何问题,query cache可能对你有用。这是如果你想停用它,那就得小心了。


**********************************************************************************************************************************
max_connections=1000 
#如果你经常看到‘Too many connections'错误,是因为max_connections的值太低了。这非常常见因为应用程序没有正确的关闭数据库连接,你需要比默认的151连接数更大的值。


max_user_connections=500
#用户连接个数限制
**********************************************************************************************************************************


thread_cache_size=50 
open_files_limit=65535 
table_definition_cache=1024 
table_open_cache=2048 


# INNODB # 
innodb_flush_method=O_DIRECT 
#这项配置决定了数据和日志写入硬盘的方式。一般来说,如果你有硬件RAID控制器,并且其独立缓存采用write-back机制,并有着电池断电保护,那么应该设置配置为O_DIRECT;否则,大多数情况下应将其设为fdatasync(默认值)。sysbench是一个可以帮助你决定这个选项的好工具。


innodb_log_buffer_size=1MB
#这项配置决定了为尚未执行的事务分配的缓存。其默认值(1MB)一般来说已经够用了,但是如果你的事务中包含有二进制大对象或者大文本字段的话,这点缓存很快就会被填满并触发额外的I/O操作。看看Innodb_log_waits状态变量,如果它不是0,增加innodb_log_buffer_size。


innodb_log_files_in_group=2 
innodb_log_file_size=256M 
#这是redo日志的大小。redo日志被用于确保写操作快速而可靠并且在崩溃时恢复。


innodb_flush_log_at_trx_commit=1 
#默认值为1,表示InnoDB完全支持ACID特性。当你的主要关注点是数据安全的时候这个值是最合适的,比如在一个主节点上。但是对于磁盘(读写)速度较慢的系统,它会带来很巨大的开销,因为每次将改变flush到redo日志都需要额外的fsyncs。将它的值设置为2会导致不太可靠(reliable)因为提交的事务仅仅每秒才flush一次到redo日志,但对于一些场景是可以接受的,比如对于主节点的备份节点这个值是可以接受的。如果值为0速度就更快了,但在系统崩溃时可能丢失一些数据:只适用于备份节点。


innodb_file_per_table=1 
#这项设置告知InnoDB是否需要将所有表的数据和索引存放在共享表空间里(innodb_file_per_table = OFF) 或者为每张表的数据单独放在一个.ibd文件(innodb_file_per_table = ON)。每张表一个文件允许你在drop、truncate或者rebuild表时回收磁盘空间。


**********************************************************************************************************************************
innodb_buffer_pool_size=3G 
#这是你安装完InnoDB后第一个应该设置的选项。缓冲池是数据和索引缓存的地方:这个值越大越好,这能保证你在大多数的读取操作时使用的是内存而不是硬盘。典型的值是5-6GB(8GB内存),20-25GB(32GB内存),100-120GB(128GB内存)。
**********************************************************************************************************************************


innodb_thread_concurrency=12 
thread_handling=pool-of-threads 
#auto_increment_increment=2 
#auto_increment_offset=0 
# LOGGING # 


log_error=/data/mysql/mysql-error.log 
#错误日志位置为/data/mysql/mysql-error.log


log_queries_not_using_indexes=1 
slow_query_log=1 
slow_query_log_file=/data/mysql/mysql-slow.log








symbolic-links=0
#MySQL数据库及表(仅MyISAM)支持符号链接(symbolic link),即数据库或表可以存储在my.cnf中指定datadir之外的分区或目录。
要支持符号链接,需要在配置中设置symbolic-links=1


假设my.cnf有设置data目录: 
[plain] view plain copy
datadir=/data1/mysql/data/  


而在另一个分区目录下保存有数据数据库TestDB:
[plain] view plain copy
/data2/mysql/data/TestDB  


那么可以这样使得同一个MySQL实例能同时管理TestDB:
[plain] view plain copy
ln -s /data2/mysql/data/TestDB /data1/mysql/data/  


[mysqld_safe]
#当出现错误时重启服务器并向错误日志文件写入运行时间信息。mysqld_safe脚本会在启动MySQL服务器后继续监控其运行情况,并在其死机时重新启动它
#以下是它的全部属性
格式 选项文件 描述
basedir=path basedir The path to the MySQL installation directory
core-file-size=size 核心文件大小 那他应该能够创造的核心文件的大小
datadir=path datadir 在数据目录的路径
defaults-extra-file=path 默认的额外文件 除了通常的选项文件中读取选项文件
defaults-file=file_name 缺省文件 只读指定的选项文件
help 显示帮助信息并退出
ledir=path ledir 使用此选项可显示的路径名的目录服务器位于何处
log-error=file_name 记录错误 写入错误日志的文件
malloc-lib=[lib-name] malloc-lib 替代malloc库使用mysqld
mysqld=prog_name mysqld 服务器的程序的名称
mysqld-version=suffix mysql版本 但你只指定为服务器程序名的后缀
nice=priority 使用好的程序设置服务器的调度优先级为给定值
no-defaults 没有默认值 不要读任何选项文件
open-files-limit=count 打开文件的限制 打开的文件数
pid-file=file_name pid文件 ID文件的路径名
plugin-dir=path plugin-dir=path 插件所在的目录
port=number 端口 端口号,服务器应该使用的时候听TCP/IP连接
skip-kill-mysqld skip-kill-mysqld 不要试图杀死mysqld进程
skip-syslog 跳跃-日志 不写日志的错误信息使用错误日志文件
socket=path 套接字 当侦听本地连接时服务器应使用的UNIX套接字文件
syslog 系统日志 写日志的错误信息
syslog-tag=tag 日志标签 写入系统日志消息标签后缀
timezone=timezone 时区 设置时区的时区环境变量指定的选项值
user={user_name|user_id} 用户 运行mysqld服务器为用户的名称或数字ID user_id user_name

你可能感兴趣的:(原创笔记,基础)