MySQL my.cnf file - Found option without preceding group

Mysqlmy.cnf

Mysql Problem Overview


I'm trying to connect to my DB in Ubuntu remotely but I receive error message when trying to mysql -u root -p:

> Found option without preceding group in config file: /etc/mysql/my.cnf at line: 1

my.cnf looks like:

[mysqld]
user		= mysql
socket		= /var/run/mysqld/mysqld.sock
port		= 3306
basedir		= /usr
datadir		= /var/lib/mysql
tmpdir		= /tmp
bind-address		=  0.0.0.0
key_buffer		= 16M
max_allowed_packet	= 16M
thread_stack		= 192K
thread_cache_size       = 8
myisam-recover         = BACKUP
query_cache_limit	= 1M
query_cache_size        = 16M
log_error                = /var/log/mysql/error.log
expire_logs_days	= 10
max_binlog_size         = 100M

[client]
port		= 3306
socket		= /var/run/mysqld/mysqld.sock

[mysqld_safe]
socket		= /var/run/mysqld/mysqld.sock
nice		= 0

[mysqldump]
quick
quote-names
max_allowed_packet	= 16M

[mysql]

[isamchk]
key_buffer		= 16M

Mysql Solutions


Solution 1 - Mysql

Missing config header

Just add [mysqld] as first line in the /etc/mysql/my.cnf file.

Example
[mysqld]
default-time-zone = "+08:00"

Afterwards, remember to restart your MySQL Service.

sudo mysqld stop
sudo mysqld start

Solution 2 - Mysql

Charset encoding

Check the charset encoding of the file. Make sure that it is in ASCII.

Use the od command to see if there is a UTF-8 BOM at the beginning, for example.

Solution 3 - Mysql

it is because of letters or digit infront of [mysqld] just check the leeters or digit anything is not required before [mysqld]

it may be something like

0[mysqld] then this error will occur

Solution 4 - Mysql

What worked for me:

  • Open my.ini with Notepad++
  • Encoding --> convert to ANSI
  • save

Solution 5 - Mysql

I had this problem when I installed MySQL 8.0.15 with the community installer. The my.ini file that came with the installer did not work correctly after it had been edited. I did a full manual install by downloading that zip folder. I was able to create my own my.ini file containing only the parameters that I was concerned about and it worked.

  1. download zip file from MySQL website

  2. unpack the folder into C:\program files\MySQL\MySQL8.0

  3. within the MySQL8.0 folder that you unpacked the zip folder into, create a text file and save it as my.ini

  4. include the parameters in that my.ini file that you are concerned about. so something like this(just ensure that there is already a folder created for the datadir or else initialization won't work):

     [mysqld]
     basedire=C:\program files\MySQL\MySQL8.0
     datadir=D:\MySQL\Data
     ....continue with whatever parameters you want to include
    
  5. initialize the data directory by running these two commands in the command prompt:

     cd C:\program files\MySQL\MySQL8.0\bin
     mysqld --default-file=C:\program files\MySQL\MySQL8.0\my.ini --initialize
    
  6. install the MySQL server as a service by running these two commands:

     cd C:\program files\MySQL\MySQL8.0\bin
     mysqld --install --default-file=C:\program files\MySQL\MySQL8.0\my.ini
    
  7. finally, start the server for the first time by running these two commands:

     cd C:\program files\MySQL\MySQL8.0\bin
     mysqld --console
    

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionAfraView Question on Stackoverflow
Solution 1 - MysqlvmishraView Answer on Stackoverflow
Solution 2 - MysqlalerootView Answer on Stackoverflow
Solution 3 - MysqlpayalView Answer on Stackoverflow
Solution 4 - MysqlMJLView Answer on Stackoverflow
Solution 5 - MysqlMitchell LeefersView Answer on Stackoverflow