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若有多个依赖文件则依次卸载。当结果显示为Compl
·
查看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
输入: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
更多推荐
已为社区贡献1条内容
所有评论(0)