Linux 下沒有 my.cnf 檔案的解決方式,完全是我自己整的,好多教程都是瞎扯的,linuxmy.cnf

來源:互聯網
上載者:User

Linux 下沒有 my.cnf 檔案的解決方式,完全是我自己整的,好多教程都是瞎扯的,linuxmy.cnf

我看過好多關於Linux下沒有my.cnf的部落格,都是什麼rmp安裝沒有my.cnf檔案啊,然後什麼兩個方法啊,我就無語了,大家要是知道就不會查資料了,你們敢不敢負責點?說詳細點?有的說從 /usr/share/mysql 裡複製一個.cnf檔案到 /etc 下,有用嗎?設定檔資料不給別人,複製個毛線?複製誰都會!


my.cnf 設定檔:


# For advice on how to change settings please see# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the# *** default location during install, and will be replaced if you# *** upgrade to a newer version of MySQL.[mysqld]#innodb# Remove leading # and set to the amount of RAM for the most important data# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.innodb_buffer_pool_size = 4000Minnodb_additional_mem_pool_size=60Minnodb_data_home_dir=innodb_date_file_path=ibdata1:20M:autoextendinnodb_log_group_home_dir=/var/log/innodb_loginnodb_log_files_in_group=2innodb_log_file_size=30Minnodb_log_buffer_size=3Minnodb_doublewrite=ONinnodb_open_file=2000innodb_file_per_table=ONinnodb_max_dirty_page_pct=50back_log=80interactive_timeout=3600key_buffer_size=10Mmax_allow_packet=40440max_connections=1000max_tmp_tables=60query_cache_size=10Msor_buffer_size=10Mtable_open_cache=2000# Remove leading # to turn on a very important data integrity option: logging# changes to the binary log between backups.#lob_binlog_bin=ONlog_bin_basename=/var/lib/mysql/mysqld-bin## Remove leading # to set options mainly useful for reporting servers.# The server defaults are faster for transactions and fast SELECTs.# Adjust sizes as needed, experiment to find the optimal values.join_buffer_size = 128Msort_buffer_size = 2Mread_rnd_buffer_size = 2Mdatadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockcharacter_set_server=utf8#init_connect='SET NAMES utf8'# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0# Recommended in standard MySQL setupsql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES#general_loggeneral_log=ONgeneral_log_file=/var/lib/mysql/localhost.log#slow_query_logslow_query_log=ONslow_query_log_file=/var/lib/mysql/localhost-slow.logslow_launch_time=2[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid

如果上述檔案配置好後,執行mysql登入,拋出xxxx.line 這樣的異常,就去 /usr/share/mysql 下面複製一個.cnf檔案的頭部替換掉上述my.cnf的頭部代碼,前提是要copy一個到/etc下,命名my.cnf,再把上面的copy,版本資訊和一些詳細檔案的

具體路徑配置,和參數配置看你自己的安裝情況


我替換的是/usr/share/mysql/my-default.cnf 標頭檔的這幾句:

# For advice on how to change settings please see# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the# *** default location during install, and will be replaced if you# *** upgrade to a newer version of MySQL.[mysqld]

然後[mysqlld]以下的全部是copy上面的,從上面設定檔的第7行的#號開始,可以解決類似 Fatal error in defaults handling. Program aborted 或者xxxx line xxxx 錯誤的問題,根據你伺服器的具體情況具體分析,我的是以我配置的為基準的


配置完之後,mysql可以正常登入,查看和開機記錄:

mysql> show variables like 'log_%';+----------------------------------------+------------------------------------+| Variable_name                          | Value                              |+----------------------------------------+------------------------------------+| log_bin                                | OFF                                || log_bin_basename                       |                                    || log_bin_index                          |                                    || log_bin_trust_function_creators        | OFF                                || log_bin_use_v1_row_events              | OFF                                || log_error                              | /var/lib/mysql/AY140615022008Z.err || log_output                             | FILE                               || log_queries_not_using_indexes          | OFF                                || log_slave_updates                      | OFF                                || log_throttle_queries_not_using_indexes | 0                                  || log_warnings                           | 1                                  |+----------------------------------------+------------------------------------+11 rows in set (0.01 sec)mysql> show variables like 'log_bin';+---------------+-------+| Variable_name | Value |+---------------+-------+| log_bin       | OFF   |+---------------+-------+1 row in set (0.00 sec)


mysql> select version();+-----------+| version() |+-----------+| 5.6.10    |+-----------+1 row in set (0.02 sec)


需要開啟的可以自己設定,希望可以幫到大家,少走歪路!
linux簡單問題

七、更改MySQL目錄

MySQL預設的資料檔案儲存目錄為/var/lib/mysql。假如要把目錄移到/home/data下需要進行下面幾步:

1、home目錄下建立data目錄
cd /home
mkdir data

2、把MySQL服務進程停掉:
mysqladmin -u root -p shutdown

3、把/var/lib/mysql整個目錄移到/home/data
mv /var/lib/mysql /home/data/
這樣就把MySQL的資料檔案移動到了/home/data/mysql下

4、找到my.cnf設定檔
如果/etc/目錄下沒有my.cnf設定檔,請到/usr/share/mysql/下找到*.cnf檔案,拷貝其中一個到/etc/並改名為my.cnf)中。命令如下:
[root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

5、編輯MySQL的設定檔/etc/my.cnf
為保證MySQL能夠正常工作,需要指明mysql.sock檔案的產生位置。 修改socket=/var/lib/mysql/mysql.sock一行中等號右邊的值為:/home/mysql/mysql.sock 。操作如下:
vi my.cnf (用vi工具編輯my.cnf檔案,找到下列資料修改之)
# The MySQL server
[mysqld]
port = 3306
#socket = /var/lib/mysql/mysql.sock(原內容,為了更穩妥用“#”注釋此行)
socket = /home/data/mysql/mysql.sock (加上此行)
 
linux 下mycnf 檔案中,userstat = 1 這個參數是幹什用的?

使用者狀態.....
 

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.