Update mysql timezone for Pacific/Fiji - mysql

My mysql Pacific/Fiji Timezone is ahead by an hour. How can I possibly update this. My mysql server is on Ubuntu. Tried below technique and it didnt work.
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
Appreciate your assistance. The time on my server is reflected correctly when using Pacific/Fiji. Only issue is with mysql timezone

I managed to solve the issue by adjusting the timezone through my code in the application. Could'nt find a systematic way to adjust the Pacific/Fiji timezone.

Related

Mysql TIMEANDDATE changing when importing table to server

somwthing super weird is happening hope you can help me. I have a local mysql running and my data for example is like this:
Product - Price - Time
Microphone - 10 - 2021-06-14 08:44:17
Time is the time this information was parsed from the website.
So now I dump this table with the command:
mysqldump -u root -p Mydatabase Mytable > C:\Users\Me\Desktop\Mytable.sql
After that I export this to the server (bluehost) with:
mysql -h -u -p < C:\Users\Me\Desktop\Mytable.sql
The weird thing is that the time and date when uploading to server automatically changes to something else and does not stay the same as in the original data collected in the local mysql !!!
Do you understand what is potentially happening?
Thanks
Problem solved, yes that was a server issue. At bluehost I had to find .htaccess file and add the line "php_value date.timezone "America/Denver." under the

How to change timezone in my.cnf keeping daylight savings in consideration

How do we set timezone in my.cnf in mysql?
I tried to set UK's timezone to my mysql server like this:
[mysqld]
default-time-zone= "Europe/London"
I can't even restart mysql when I add this line so this seems to be wrong for some reason. I tried to set it using mysql client and I am getting this error.
if I set it to GMT, would it work fine in the case of daylight savings?
Took me ages to find this as I thought timezone tables would be default populated - so hopefully this helps someone else
You can do it using the line you have Danyal BUT you have to load the timezone info into mysql first
So on the server run this as root
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
Then in my.cnf use
[mysqld]
default-time-zone = 'Europe/London'

Set on mysql only with one running schema

Can anyone help me to set up a mysql database only with one schema?
I tried to reset root password to database, but while switching on mysqld I've got an error that mysqld is ended.
I tried to change my.cnf etc. but I have no time to tries because shop is still running on this database so I shouldn't switching down a database.
Ones upon a time I was reseting a root password but then I had no problems with it. I'm thinking that InnoDB could be main problem on mysql because I had some errors on logs while I tried to set up mysqld with --skip-grant-tables and --skip-networking. I would like to start mysqld only with main mysql schema running but I can not Google any tutorials for that. Do anyone know how to do this? That could be easier and faster then trying to set up my.cnf correctly for mysqld. I spend few hours on that and I have no f**king idea what am I doing wrong?! (switching off innodb on my.cnf doesn't helped me - I tried) I'm thinking about dump all databases and reinstall mysql on Ubuntu but it sucks... (I have access but not by root)
//get it using DATABASE() function -
SELECT DATABASE();
// set it using USE statement -
USE database1;

Native table 'performance_schema'.'???' has the wrong structure

I am getting the following:
Native table 'performance_schema'.'file_instances' has the wrong structure
Native table 'performance_schema'.'cond_instances' has the wrong structure
Native table 'performance_schema'.'rwlock_instances' has the wrong structure
Native table 'performance_schema'.'mutex_instances' has the wrong structure
...
And on it goes
These errors come up when I restart MySql. It seems to cause MySql Administrator to become unstable, I get a lot of:
"MySQL server has gone away"
Try following command in shell (the root user here is the mysql root user, not the system root)
sudo mysql_upgrade -u root -p
sudo service mysql restart
Make sure to restart mysql after running this (All credit to #Mikepote in the comments.)
Im my case it appeared when specific query was run on a table.
And log also contained:
Missing system table mysql.proxies_priv; please run mysql_upgrade to
create it
I've run mysql_upgrade and after that problem has gone.
I had this problem, the answer was here by #Berend de Boer
Restart mysql after the upgrade.
[ERROR]Native table performance schema has the wrong structure
This error is encountered when you installed MySQL over a previous installation that was configured without the Performance Schema or an older version of Performance schema that may not have all the current tables.
I also encountered this issue on mamp. To resolve it, I have executed the following:
cd /Applications/MAMP/bin/
sudo ./upgradeMysql.sh
Remember to restart the mysql server.
You can read the Performance Schema Build Configuration for more details.
If the database is a Akonadi (KDE) database the above won't be enough.
You need to mirror the options given to your mysqld, check with
ps aux | grep mysql
Copy the options to the mysql_upgrade commands (I did not need '-u root -p' but you might)
mysql_upgrade --defaults-file=/home/USER/.local/share/akonadi/mysql.conf --datadir=/home/USER/.local/share/akonadi/db_data/ --socket=/tmp/akonadi-USER.x0Bvxr/mysql.socket
I really think the --socket option is the key.
Try mysql_upgrade and then restart mysql and its working back
It seems this happens after you have done upgrade. Simply restart mysql:
Like run below command in CMD
sudo mysql_upgrade -u root -p
service mysql restart
and the error should now have disappeared.
Apparently MySQL schema storage is broken due to a reason. These reasons may be:
You have broken the database information_schema
File system corrupted or some bugs in the file system damaged the database.
MySQL internals broke the schema database due to a bug in MySQL (maybe nobody encountered it before).
If you don't have backups however you are still able to access your data, first backup your data then do the following:
If you have backups, then reinstall MySQL (before that completely clear all data of mysql) and then import your data.

Changing the connection timezone in MySQL

My server is running in MDT
So I used following one to convert EST
SET time_zone = '-5:00'
But, how can I switch it to EDT because
While `EST` is only valid in winter, while in summer how to change it to `EDT`
I just try to used named time zone. But I am getting following error
#1298 - Unknown or incorrect time zone: 'America/Toronto'
I don't understand how to solve this problem
How can i switch
UTC -05 TO UTC-04
For Linux, BSD, and Mac OS X if you need to load the timezone table do this:
$ mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -uroot mysql
Since you're using Windows, your going to have to import the time zone description tables to your MySQL server.
http://dev.mysql.com/downloads/timezones.html
For me on Windows using WampServer:
download the POSIX version from https://dev.mysql.com/downloads/timezones.html
unzip it
put all files in wamp mysql data: C:\wamp\bin\mysql\mysql5.7.11\data\mysql
restart wamp
More Info:
“To use a time zone package that contains .frm, .MYD, and .MYI files for the MyISAM time zone tables, download and unpack it. These table files are part of the mysql database, so you should place the files in the mysqlsubdirectory of your MySQL server's data directory. Stop the server before doing this and restart it afterward”
http://dev.mysql.com/doc/refman/5.7/en/time-zone-support.html#time-zone-installation
In case of Mysql8 and want to set EDT timezone 'America/New_York' then follow the below steps:
Go to the /etc/my.cnf
Add this under [mysqld]
default-time-zone='America/New_York'
systemctl restart mysqld
If you face the issue realted fatal error like this:
Fatal error: Illegal or unknown default time zone
Then do the following steps:
first remove the entry from /etc/my.cnf file for default-time-zone='America/New_York'
Go to shell(exit from mysql) and run the command
$ mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root -p mysql
Add the line again
Restart mysql
Have you tried using a zoneinfo name such as "America/New_York" instead of the abbreviation (which is only valid for half the time)?
Ideally, you shouldn't use the server time zone at all of course - store dates in UTC and then convert it to the appropriate time zone in the client code. (This does depend on what you're storing, mind you. Future date/time values specified by a user with a time zone should be stored that way, not converted to any other time zone, in case the rules change between now and the future date/time. But for instants in time recorded by machines, e.g. for logging, transactions etc, I'd definitely store UTC. I would never suggest storing "just the local time and assume that the server and the client have the same rules".)
Just for the sake of completeness, Mac users can find mysql_tzinfo_to_sql utility in /usr/local/mysql/bin directory.
Hence the complete command will be /usr/local/mysql/bin/mysql_tzinfo_to_sql /usr/share/zoneinfo | ./mysql -p -u root mysql
I spent hours to find the utility, the above path may save yours!