简版:
[mysqld] #指定默认端口为3306 port=3306 #指定MySQL监听的地址 bind-address=192.168.2.106 #指定MySQL的主目录 basedir=/usr/local/mysql #指定数据目录 datadir=/data/mysql/data socket=/tmp/mysql.sock #启动时使用的用户 user=mysql #指定时区与系统一致 default-time-zone=system #指定使用的存储引擎为InnoDB default-storage-engine=InnoDB #指定错误日志位置 log-error=/var/log/mysqld.log #默认配置的MySQL模式 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysql] socket=/tmp/mysql.sock [client] socket=/tmp/mysql.sock [mysqldump] socket=/tmp/mysql.sock [mysqladmin] socket=/tmp/mysql.sock复杂版
[root@localhost mysql]# cat /etc/my.cnf [client] port = 3306 socket = /tmp/mysql.sock [mysqld] replicate-ignore-db = mysql replicate-ignore-db = test replicate-ignore-db = information_schema #启动时使用的用户 user = mysql #指定默认端口为3306 port = 3306 socket = /tmp/mysql.sock #指定MySQL的主目录 basedir = /usr/local/mysql #指定数据目录 datadir = /data/mysql/data #指定时区与系统一致 default-time-zone=system #指定使用的存储引擎为InnoDB default-storage-engine=InnoDB default-storage-engine = InnoDB default-tmp-storage-engine=InnoDB #指定错误日志位置 log-error = /data/mysql/mysql_error.log pid-file = /data/mysql/mysql.pid open_files_limit = 65535 back_log = 600 max_connections = 5000 max_connect_errors = 1000 table_open_cache = 1024 external-locking = FALSE max_allowed_packet = 32M sort_buffer_size = 1M join_buffer_size = 1M thread_cache_size = 600 #thread_concurrency = 8 query_cache_size = 128M query_cache_limit = 2M query_cache_min_res_unit = 2k thread_stack = 192K transaction_isolation = READ-COMMITTED tmp_table_size = 128M max_heap_table_size = 128M log-slave-updates log-bin = /data/mysql/binlog/binlog binlog-do-db=oa_fb binlog-ignore-db=mysql binlog_cache_size = 4M binlog_format = MIXED max_binlog_cache_size = 8M max_binlog_size = 1G relay-log-index = /data/mysql/relaylog/relaylog relay-log-info-file = /data/mysql/relaylog/relaylog relay-log = /data/mysql/relaylog/relaylog expire_logs_days = 10 key_buffer_size = 256M read_buffer_size = 1M read_rnd_buffer_size = 16M bulk_insert_buffer_size = 64M myisam_sort_buffer_size = 128M myisam_max_sort_file_size = 10G myisam_repair_threads = 1 myisam_recover interactive_timeout = 120 wait_timeout = 120 skip-name-resolve #master-connect-retry = 10 slave-skip-errors = 1032,1062,126,1114,1146,1048,1396 #master-host = 192.168.1.2 #master-user = username #master-password = password #master-port = 3306 server-id = 1 loose-innodb-trx=0 loose-innodb-locks=0 loose-innodb-lock-waits=0 loose-innodb-cmp=0 loose-innodb-cmp-per-index=0 loose-innodb-cmp-per-index-reset=0 loose-innodb-cmp-reset=0 loose-innodb-cmpmem=0 loose-innodb-cmpmem-reset=0 loose-innodb-buffer-page=0 loose-innodb-buffer-page-lru=0 loose-innodb-buffer-pool-stats=0 loose-innodb-metrics=0 loose-innodb-ft-default-stopword=0 loose-innodb-ft-inserted=0 loose-innodb-ft-deleted=0 loose-innodb-ft-being-deleted=0 loose-innodb-ft-config=0 loose-innodb-ft-index-cache=0 loose-innodb-ft-index-table=0 loose-innodb-sys-tables=0 loose-innodb-sys-tablestats=0 loose-innodb-sys-indexes=0 loose-innodb-sys-columns=0 loose-innodb-sys-fields=0 loose-innodb-sys-foreign=0 loose-innodb-sys-foreign-cols=0 slow_query_log_file=/data/mysql/mysql_slow.log long_query_time = 1 [mysqldump] quick max_allowed_packet = 32M其他命令
启动:service mysqld start停止:service mysqld stop重启:service mysqld restart重载配置:service mysqld reload上述示例表示将MySQL软件安装到/usr/local/mysql目录下,本示例中使用的参数及其含义如下:
DCMAKE_INSTALL_PREFIX:表示将MySQL安装到何处,此例中将安装到/usr/local/mysql目录中;DMYSQL_DATADIR:表示MySQL的数据文件存放目录;DSYSCONFDIR:配置文件所在目录;DWITH_MYISAM_STORAGE_ENGINE:将MyISAM存储引擎编译到服务中;DWITH_INNOBASE_STORAGE_ENGINE:将InnoDB存储引擎编译到服务中;DMYSQL_UNIX_ADDR:DMYSQL_TCP_PORT:默认使用的端口;DENABLED_LOCAL_INFILE:指定是否允许本地执行LOAD DATA INFILE;DWITH_PARTITION_STORAGE_ENGINE:将分区引擎编译到服务中;DEXTRA_CHARSETS:让服务支持所有扩展字符集;DDEFAULT_CHARSET:服务使用的默认字符集,此处设置为UTF8;DDEFAULT_COLLATION:默认的排序规则。编译安装MySQL时有许多参数,这些参数的详细含义和说明可以在官方网站中查找:http://dev.mysql.com/doc/refman/5.5/en/source-configuration-options.html
安装的依赖包的作用:
gcc/g++:MySQL 5.6开始,需要使用g++进行编译;cmake:MySQL 5.5开始,使用cmake进行工程管理,cmake需要2.8以上版本;bison:MySQL语法解析器需要使用bison进行编译;ncurses-devel:用于终端操作的开发包;zlib:MySQL使用zlib进行压缩;libxml:用于XML输入输出方式的支持;openssl:使用openssl安全套接字方式通信;dtrace:用于诊断MySQL问题。因为mysql命令的路径在/usr/local/mysql/bin下面,所以你直接使用mysql命令时, 系统在/usr/bin下面查此命令,所以找不到了。
解决办法:使用如下命令做个链接即可
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysqlGoogle了下 ,问题可能的原因有多种,具体什么原因最好的办法是先查看下错误日志:
本人遇到的问题:隔了两三个月之后再次启动mysql,这时不仅电脑换了而且也换了工作环境(这是重点,来到了更大的IT公司)。一换工作环境,内网的IP地址段就换了:192.168.2.106 —> 10.73.150.4。然后配置文件/etc/my.cnf里的“bind-address=192.168.2.106”这货就惹事了。启动时报一下错误:
其中“localdomain”表示本地域的意思。出现这个错误的原因主要就是因为两个IP不再同一段内。通过查看/etc/rc.d/init.d/mysqld脚本文件,可以看到pid文件的命名方式。
所以决解方法有三种:
“bind-address”注释掉;改一下IP;直接指定pid文件:pid-file = /data/mysql/mysql.pid。解决方法 :给予权限,执行 如下命令
chown -R mysql:mysql /data/mysql/data chmod -R 755 /usr/local/mysql/data然后重新启动mysqld。
解决方法:用命令“ps -ef|grep mysqld”查看是否有mysqld进程,如果有使用“kill -9 进程号”杀死,然后重新启动mysqld!
解决方法:去mysql的数据目录/data看看,如果存在mysql-bin.index,就赶快把它删除掉吧,它就是罪魁祸首了。
解决方法:请在[mysqld]下设置这一行:datadir = /data/mysql/data
解决方法:检查一下/etc/my.cnf文件中有没有没被注释掉的skip-federated字段,如果有就立即注释掉吧。
解决方法:使用“chown” “chmod”命令赋予mysql所有者及权限
解决方法:关闭它,打开/etc/selinux/config,把SELINUX=enforcing改为SELINUX=disabled后存盘退出重启机器试试。
原因:当使用host参数为“localhost”连接Mysql服务时,会优先使用“sock文件”进行连接,而不是使用“IP:端口”进行连接,而Mysql尝试使用“sock文件”进行连接时,却无法获取“sock文件”的位置。
解决办法:要解决此错误,有两种解决方法
将连接参数“host”的值由“localhost”改成“127.0.0.1”;按下面方法,在“/etc/mysql.cnf”中指定“sock文件”位置。3.1 查看mysql服务的socket文件位置 mysql socket文件的位置是在/etc/my.cnf中设置的,cat /etc/my.cnf内容如下:
[mysqld] datadir=/storage/db/mysql socket=/storage/db/mysql/mysql.sock user=mysql其中socket等于的路径就是socket文件的位置,我们只要修改my.cnf文件,告诉mysql,mysqldump,mysqladmin等mysql服务的socket位置在哪里就可以。
3.2 修改my.cnf文件 在/etc/my.cnf文件中添加如下内容,并重启mysqls服务,即可解决mysql,mysqldump,mysqladmin的“Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’”问题:
[mysqld] socket=/tmp/mysql.sock [mysql] socket=/tmp/mysql.sock [client] socket=/tmp/mysql.sock [mysqldump] socket=/tmp/mysql.sock [mysqladmin] socket=/tmp/mysql.sock解决方法:my.ini(my.cnf)默认的bind-address是127.0.0.1,这样的话就算你创建的用户有可以remote访问的话 也不能通过-h 来访问。 mysql只接受localhost。 所以把bind-address屏蔽掉即可。
