MySQL lower_case_file_system change (OFF to ON) - mysql

I am trying to change the lower_case_file_system to 'ON' in MySQL, but do not know how to do it. I'd like to set it up as case-non-sensitive.
According to the MySQL 8.0 Reference Manual, 'This variable describes the case sensitivity of file names on the file system where the data directory is located. OFF means file names are case-sensitive, ON means they are not case-sensitive. This variable is read-only because it reflects a file system attribute and setting it would have no effect on the file system.'
How can I change the value? Any idea, please? Thanks!
Carolina
enter image description here

Assuming it's through XAMPP.
Do these steps:
open your MySQL configuration file: [drive]\xampp\mysql\bin\my.ini
look up for: # The MySQL server [mysqld]
add this right below it: lower_case_table_names = 2
save the file and restart MySQL service
From: http://webdev.issimplified.com/2010/03/02/mysql-on-windows-force-table-names-to-lowercase/
In order to use camelCaseNames in table names and views, lower_case_table_names has to be 0
Might want to check here too:
As per this link, lower_case_table_names should be set together with --initialize option.
If on Ubuntu:
https://bugs.mysql.com/bug.php?id=90695 this is not supported out of the box. So the workaround is this
lower_case_table_names=1 on Ubuntu 18.04 doesn't let mysql to start
Finally, read the official sources:
https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html
https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html
https://forums.mysql.com/read.php?10,377683

On Mysql Server 8.0 Windows os, if you change lower_case_table_names=2 in mysql.ini the server will not start so you have to follow this
step 1: Backup all data / export to .sql or Dump all data
step 2: Stop the server from service
step 3: Delete the data folder from C:\Program Files\ Mysql Server 8.0\Data
step 4: Open C:\Program Files\ Mysql Server 8.0\my.ini as an administrator using notepad
step: 5 find set lower_case_table_names= 2 if you want camelCase table name
step: 6 open mysql installer and open reconfigure then open ->show advanced and logging option -> Advanced Options -> use second option from the list
step: 7 then everything will be ok

Related

My SQL installed in `Program Files` and can't see the `my.ini` files

In my machine (Windows 10) two MySQl versions are needed. The Project "A" is running in XAMPP. When I've started my second project, I've stopped the first SQL services and installed MySQL 5.7. In that I need to set lower_case_table_names = 2 for the case sensitive method.
I google it, they say:
open your MySQL configuration file: [drive]\xampp\mysql\bin\my.ini
look up for: # The MySQL server [mysqld]
add this right below it: lower_case_table_names = 2
save the file and restart MySQL service
I know that it's for XAMPP only.
But I've installed MySQL in Program Files. Here I couldn't able to see C:\Program Files\MySQL\MySQL Server 5.7\bin\my.ini files. Then where should I set the lower_case_table_names = 2 value?
Thanks in advance.
In XAMPP use the "Control Panel" to find the mysql.ini config file.
In a regular Windows install of MySQL the .ini file sits in C:\ProgramData\MySQL\MySQL Server.

Where to change the value of `lower_case_table_names=2` on windows mysql?

I am using Windows 10. I am trying to create a tables with the first letter in the name with uppercase for example: User, but I canĀ“t find the file that contains lower_case_table_names variable.
I know this is 2 years late but I hope to help others with similar problem.
For those that does not use xampp, the MySQL configuration file should be located at C:\ProgramData\MySQL\MySQL Server 5.7.
Alternatively, you can use MySQL Workbench software to change lower_case_table_names variable.
Run MySQL Workbench software with administration right (Meaning: right click the software icon and "Run as administrator").
Connect to your database.
Find Options File under the left panel (Navigator > Instance > Options File)
In General tab, tick lower_case_table_names to modify the value to 2.
Click Apply to save the changes.
Credits to Technology Explained
FYI, remember to restart the MySQL server to reflect the changes!
Do these steps:
open your MySQL configuration file: [drive]\xampp\mysql\bin\my.ini
look up for: # The MySQL server [mysqld]
add this right below it: lower_case_table_names = 2
save the file and restart MySQL service
From: http://webdev.issimplified.com/2010/03/02/mysql-on-windows-force-table-names-to-lowercase/

MySQL's lower_case_table_names won't change

I have a problem with changing lower_case_table_names variable value in MySQL 5.6 ...
I did all that says in Where to change the value of lower_case_table_names=2 on windows xampp.
The default value on my Windows 7 is '1'. I want to switch it to '2'.
Tried several ways, what I did is:
Edited C:\Program Files\MySQL\MySQL Server 5.6\my-default.ini by adding lower_case_table_names = 2 to wherever I could (without # symbol ofc)
Copied my-default.ini and pasted to the same directory, but renamed to my.ini
Copied my.ini to \bin folder
Restarted MySQL56 service couple times
Now, when I read "SELECT ##lower_case_table_names" it still says 1, and my db behaves like it is 1...
Any ideas?
I solved this with a file I found under
C:\ProgramData\MySQL\MySQL Server 5.6\my.ini
So, it was ProgramData, not Program Files. I got this path from MySQL Workbench -> Manage Server Instances -> [tab] System Profile -> Configuration File. Guess this is the place where one should look for the current config filepath.

Where to change the value of lower_case_table_names=2 in XAMPP on Windows?

I am using Windows 7 and XAMPP. I am trying to export my database and while in the process the table names are converted to lower case.
I have searched a lot, I know I have to change the value of lower_case_table_names from 0 to 2, but where do I have to change this value, in which file?
Do these steps:
open your MySQL configuration file: [drive]\xampp\mysql\bin\my.ini
look up for: # The MySQL server [mysqld]
add this right below it: lower_case_table_names = 2
save the file and restart MySQL service
From: http://webdev.issimplified.com/2010/03/02/mysql-on-windows-force-table-names-to-lowercase/
On linux I cannot set lower_case_table_names to 2 (it reverts to 0), but I can set it to 1.
Before changing this setting, do a complete dump of all databases, and drop all databases. You won't be able to drop them after setting lower_case_table_names to 1, because any uppercase characters in database or table names will prevent them from being referenced.
Then set lower_case_table_names to 1, restart MySQL, and re-load your data, which will convert everything to lowercase, including any subsequent queries made.
Try adding/editing lower_case_table_names = 2 in my.ini or my.cnf
I have same problem while importing database from linux to Windows.
It lowercases Database name aswell as Tables' name.
Use following steps for same problem:
Open c:\xampp\mysql\bin\my.ini in editor.
look for
# The MySQL server
[mysqld]
3 . Find
lower_case_table_names
and change value to 2
if not avail copy this at the end of this [mysqld] portion.
lower_case_table_names = 2
This will surely work.
Also works in Wampserver.
Click on the Green Wampserver Icon, choose MySql, then my.ini.
This will allow you to open the my.ini file.
Then -
look up for: # The MySQL server [mysqld]
add this right below it: lower_case_table_names = 2
save the file and restart MySQL service
Important Note - add the lower_case_table_names = 2 statement NOT under the [mysql] statement, but under the [mysqld] statement
Reference - http://doc.silverstripe.org/framework/en/installation/windows-wamp
If you have the file my-default.ini rename it to my.ini
ADD following -
look up for: # The MySQL server [mysqld]
add this right below it: lower_case_table_names = 1
In file - /etc/mysql/mysql.conf.d/mysqld.cnf
It's works for me.
Look for a file named my.ini in your hard disk, in my system it's in
c:\program files\mysql\mysql server 5.1
If it's not my.ini it should be my.cnf
On Mysql Server 8.0 Windows os, if you change lower_case_table_names=2 in mysql.ini the server will not start so you have to follow this
1: Backup all data / export to .sql or Dump all data
2: Stop the server from service
3: Delete the data folder from C:\Program Files\ Mysql Server 8.0\Data
4: Open C:\Program Files\ Mysql Server 8.0\my.ini as an administrator using notepad
5: find set lower_case_table_names= 2 if you want camelCase table name
6: open mysql installer and open reconfigure then open ->show advanced and logging option -> Advanced Options -> use second option from the list
7: then everything will be ok

How to force case sensitive table names?

I'm working on a MySQL database in windows.
I must move it into a Linux environment. MySQL database contains a lot of tables and stored procedures which are CASE SENSITIVE.
When I backup my database, all table names are forced lowercase so when I restore it in Linux it complains because you can't make duplicate tables and stored procedures.
I don't have access to the MySQL configuration in the linux environment so I cant change MySQL settings to case insensitive mode.
Is there any way to force MySQL (v5.x) to use case sensitive table names in windows?
Read the following chapter in the official MySQL documentation: Identifier Case Sensitivity.
Then add the following system variable to the server section, [mysqld], inside the my.ini configuration file and restart the MySQL service:
lower_case_table_names=2
Have a look at this article - http://dev.mysql.com/doc/refman/5.1/en/identifier-case-sensitivity.html
Mode 2 allows to store tables with specified lettercase, but anyway, name comparisons won't be case sensitive and you won't be able to store table1 and Table1 at the same time.
On Windows put lower_case_table_names=2 at the end of the
C:\ProgramData\MySQL\MySQL Server 5.7\my.ini file.
Unfortunately there's no way of making MySQL on windows to behave 100% as in Linux. What you can do, is to run a minimal VM on Virtual Box or VMware player with TurnKey - MySQL Appliance.
In my personal experience, I've found quite useful to have a VM with a configuration similar to the deployment environment to diagnose problems.
Add this property to lower_case_table_names=2 to my.ini
By default, table names are case sensitive in Windows, but you can make it case sensitive by updating the lower_case_table_names variable to 2.
ref: https://dev.mysql.com/doc/refman/8.0/en/identifier-case-sensitivity.html
However, before going to the further process, create backups of your existing databases. Then you need to remove all existing databases to avoid table name inconsistency.
We were on the step to set lower_case_table_names to 2, but this variable is read-only, so you can not update it using the script. So need to change it to the configure file (my.ini). For windows, it's available in the C:\ProgramData\MySQL\MySQL Server X.X directory. Open this file in administrator mode and set the lower_case_table_names variable value to 2.
These changes will not take effect until you restart the MySQL server before restarting the MySQL Server by following steps.
Open the Run window by using the Windows+R keyboard
Type services.msc and press Enter
Select the MySQL service and click the restart button
ref: https://www.mysqltutorial.org/mysql-adminsitration/restart-mysql/
MySQL server might not start because of changes in the my.ini file. In that case, we can not proceed further. Therefore lower_case_table_names variable value set back 1 again. then restart the MySQL server mentioned above.
Finally, we only have one remaining option to make a case-sensitive table name for MySQL in windows, completely removing MySQL from your machine and configuring it during installation. During install, check Advanced and Logging Options from the Type and Networking tab, then select the radio button to preserve the given case from the Advanced Options tab.
ref: Can't set lower_case_table_names in MySQL 8.x on Windows 10
i add this line and it solve the different case problem
lower_case_table_names=1
in /etc/my.cnf
you can see how to set mysql variable "lower_case_table_names" form this page :
https://dev.mysql.com/doc/refman/5.0/en/server-system-variables.html#sysvar_lower_case_table_names
In MySQL 8, lower_case_table_names setting is not allowed once installation is done. To enable the setting , you have to re-install mysql