MySQL and SQL Scripts - mysql

So I'm learning MySQL. So far, its been a great thing to learn and I haven't had any issues. However, when it comes to creating and running a SQL script, I've found myself very stuck.
I've created a script which shows the current databases, then creates a new database and finally shows the databases again. Originally, my problem looked exactly like this one: mysql: SOURCE error 2?. I followed the advice by applying forward slashes instead of back slashes. This worked in the sense that I got no errors, but nothing happened; no output at all..?
The script (s1_create-db.sql) is:
#Reveal existing databases
SHOW DATABASES;
/*Create a new database called "my_DB"
only if a database with that name does not exist */
CREATE DATABASE IF NOT EXISTS my_DB;
#Reveal databases
SHOW DATABASES;
Originally I ran the script with:
SOURCE C:\Program Files\MySQL\MySQL Server 5.7\s1_create-db
which gave me:
ERROR:
Failed to open file 'C:\Program Files\MySQL\MySQL Server 5.7\s1_create-db',error: 2
I then ran:
SOURCE C:/Program Files/MySQL/MySQL Server 5.7/s1_create-db.sql
which gave me nothing. I checked to see if the new DB had been created, but it hadn't.
Any advice is highly appreciated!!!!

Just a note to anyone who may come across this question. I found out how to do it; give up on Windows and go back to Linux. I'm still not sure what went on/wrong, but Linux gave me what I needed. Thanks to anyone who looked at the question and had a think.

Related

MySQL Running SQL Script error - [WinError 32] The process cannot access the file because it is being used by another process:

I am getting an error while running a SQL script to load data. Error is pasted below:
Preparing...
[WinError 32] The process cannot access the file because it is being used by another process: 'C:\\Users\\PRATIK~1\\AppData\\Local\\Temp\\tmpf75l0wi5.cnf'
I have tried uninstalling and installing MySQL several times but nothing is helping.
I faced the same issues while trying to run a MySQL script. I tried to find the process in the temp folder and removed it and tried again but the process seems to start again and appears in the temp folder. I could not run the script, however, I found a workaround, instead of running the script try to open it and run it in the query editor.
Just downgrade your MySQL workbench version.
In my case I downgraded the version from
8.0.25 to 8.0.20.
The sounds like you already had tried that script execution before and stopped it without stopping the mysqld process. So this process (which does the actual import) still holds a file lock on the temporary config file.
Try removing that file and check that all MySQL processes that you don't want are stopped. Then try again.
It seems the actual issue is not related to MySQL itself, but to MySQL Workbench.
The error you're seeing is a generic error coming from Windows itself, not from MySQL. It's unclear how you're running MySQL, for example is it in your localhost, in a Docker environment, or in a remote server.
It seems clear that at least two processes are trying to get an exclusive lock on that temporary file. My guess is that MySQL won't write temporary files to the user folder we're seeing (with your username Pratik).
On Windows, MySQL checks in order the values of the TMPDIR, TEMP, and TMP environment variables. For the first one found to be set, MySQL uses it and does not check those remaining. If none of TMPDIR, TEMP, or TMP are set, MySQL uses the Windows system default, which is usually C:\windows\temp.
Something you can do is to change your MySQL configuration so it uses a specific Temporary path you'll set, restart MySQL and retry running the query. If you see the error contains your new temporary path you've isolated the issue, it is indeed a MySQL problem. If you keep seeing this path you've isolated the issue to MySQL WorkBench.
An alternative approach would be to run the same query from another MySQL client, for example the command-line client mysql; and see if you're getting the same error.
Probably the simpler approach would be to try the queries with dBeaver, another MySQL client, and use that to isolate the issue to either the MySQL server itself or MySQL WorkBench.
This is a common issue for the upgraded version of MySQL, Try using Open Script instead of Run Script and that seems to clear up the issue.
I've found that it was already reported in the official bug tracker: https://bugs.mysql.com/bug.php?id=104841.
I've just checked, and it's still present in MySQL Workbench 8.0.30.
Work Around
Do not try to open the SQL file from this tool bar:
Go to Server > Data Import:
select import from self-contained file
select your target schema
then start import (bottom right btn)

MySQL Workbench Data Export error. "Error executing task [Errno 2] No such file or directory"

I have a problem to export a small database using MySQL Workbench's Data Export function on Windows 10.
Previously I have had no problems exporting and importing databases, although after this happened I have changed the security of the server to legacy to get it working with phpMyAdmin using the MySQL Workbench Installer, which I have been unable to change back as when trying to execute the change I got an error stating the installer was unable to create the temporary user (running this as administrator didn't help).
Since then I have also updated MySQL Workbench, the server, and the rest of the components that were installed with it, which seems to have gotten rid of the MySQL Workbench Installer application, as such i am unable to provide the exact error it gave regarding being unable to create the temporary user.
I'm not 100% sure if the above is relevant to the issue but it does seem like it could be related.
The issue that I'm trying to fix is that MySQL Workbench will not export any (or all of) the databases I have set up to a self contained file. The error I keep getting is below:
09:47:47 Dumping va_form (all tables)
Error executing task [Errno 2] No such file or directory: u'D:\Mike\Desktop\Dump20190226.sql'
09:47:47 Export of D:\Mike\Desktop\Dump20190226.sql has finished
I was previously getting a similar error about access denied, which then lead me to change the default dump directory to my desktop, as I'm only going to need to dump files occasionally and sort and send them elsewhere straight away.
I have also tried disabling column-statistics and lock-tables although this has had no effect.
As you can see, at the start of the directory it's trying to dump to it says "u'D:\\" - I am not sure if this leading u is significant, although it is not there in the directory I have specified to dump the file to.
I'm hoping someone here has some insight into this issue, I have no idea why MySQL Workbench's installer was refusing to make the temporary user (even when being run as administrator) and why I cannot find the installer now, as well as the obvious problem of why MySQL workbench is unable to create the file to dump anywhere on the system.
Thanks very much for your time reading this.
It is probably an issue with a recent update of Windows Defender, not with MySQL.
Try to save your dump to folders located somewhere else than Desktop or Documents (I usually send them directly to a cloud service integrated with my OS). If this works, you just need to add an exception for MySQL in Windows Defender.

Error phpmyadmin pma__tracking and others does not exist

I recently downloaded XAMPP on my Mac, running Yosemite. Once installed, I tried to use phpmyadmin. I was able to create a database and in the SQL tab create a Table for the database using the "CREATE TABLE ..." query, but I cannot view that database or any of the databases that came loaded with the program. Anytime I click on the database name on the left hand side, I get an error saying that
"#1932 - Table pma__tracking does not exist in engine"
This error also occurs when I try to run "select * ..." queries from the SQL tab.
I have tried altering the config.inc.php file as suggested in other posts, and this did not work. I tried importing the create_tables.sql from the example folder and it gives the same error.
I am able to write .php scripts to query the database created and to add/retrieve data from it, but I cannot do any of this through the phpmyadmin tool, which would be very helpful, and I think might cause more problems later in my development.
Any thoughts on how to configure/set up phpmyadmin to work as its supposed to?
Thanks in advance.
You have to do both: use the .sql script to create these configuration storage tables, and specify their name in config.inc.php. Afterwards, log out and log in to see the effect.

Error dropping database (can't rmdir '.\abm', errno: 41) on windows in mysql server

I have a database that I would like to drop from the server but when I wanna drop it I am getting the above error.
Trying to look for the solution I found some answer the problem at this link Error in dropping a database in MySQL (can't rmdir '.\oro', errno: 41) but what I don't see the folder they are talking about. I went in the C:\Program Files\MySQL\MySQL Server 5.5\data folder but I coudn't see a folder with the name of my database not even when I did searching in the folder C:\Program Files\MySQL\MySQL Server 5.5\
Windows Error 41 is "directory not empty." https://msdn.microsoft.com/en-us/library/t3ayayh1.aspx
Proceed cautiously. You don't want MySQL's internal structures to become inconsistent with what's on the disk.
Run the query SELECT ##DATADIR; to find the directory that should contain a folder for each of your databases, including one called abm.
Contrary to the advice offered in the other question, don't delete the abm folder once you find it. Instead, leave the folder there, and move the files inside it somewhere outside the datadir where MySQL can't see them.
Then try again to drop the database the normal way.
Finally, restart MySQL to be absolutely sure that its internal structures are consistent with the disk files, by reviewing the log for errors. If the server restarts with no errors, and the database is no longer listed, it should be safe to delete the stray files you copied out of harm's way, above.
If you are windows user. Go to your XAMPP directory -> Mysql directory -> data -> then you will be seeing your list of databases inside this folders. Just cut and paste the database outside somewhere in desktop which you want to remove. If you are using phpmyadmin refresh the page. If you are not finding any errors. you are good to go.
I was getting same error, and did two things
I just provided full access rights to current user.
Open Database folder and than execute your sql (drop database mydatabase).
If above solution not works for you, than you have to delete database folder manually.

MySQL Workbench "fetching..." -- cannot browse DB

I've been having a lot of issues lately, basically since the last time I upgraded XAMPP for OSX (v1.7.3) and/or my MySQL GUI tools. Using MySQL Workbench (v5.2.44), I can connect to the DB running in XAMPP just fine, but trying to browse any database, under tables/views/etc it only shows "Fetching..." and never shows anything else. I can actually query tables, which is interesting, but I can't actually manage the databases in any meaningful way.
Googling, others reported having luck running mysql_upgrade on the command line, which ran fine but did not fix my issue.
The following command worked for me on windows:
C:\Program Files\MySQL\MySQL Server 5.5\bin>mysql_upgrade.exe -u root -p --force
If the root password is not set, you might need to do this before you run the command above:
mysql> SET PASSWORD FOR 'root'#'localhost' = PASSWORD('something');
The link above to mysql_upgrade did not solve my problem directly, but it did lead me to examine my mysql error file, which ultimately led me to the solution. I noticed several lines like this in the error file (located at [xampp root]/var/mysql/[dbname].err):
/Applications/XAMPP/xamppfiles/sbin/mysqld: Can't create/write to file
'/var/folders/y2/37h93r_931sdfpcr7vnc83380000gn/T/ibigNFFi' (Errcode: 13)
That led me to this page in the MySQL docs which states that you should explicitly set the temp folder for MySQL. I double-checked my config file ([xampp root]/etc/my.cnf) and saw this, which looked fine:
[mysqld]
tmpdir = /Applications/XAMPP/xamppfiles/temp/
However, looking back at the error log, I also noticed this:
Warning: World-writable config file '/Applications/XAMPP/xamppfiles/etc/my.cnf' is ignored
Duh. The config file was getting ignored, so the configured temp folder was not getting used (I have no clue why the file was world-writeable...). I edited permissions on the my.cnf file which was 777 and simply removed the "Everyone|write" permission (now 775 / -rwxrwxr-x), reloaded everything, and now everything works.
Not a very intuitive symptom for the ultimate fix, so hopefully this helps someone else.
If you have MAMP instead of XAMP the solution above won't work for you.
Open MAMP then on the top menu go to Tools->Upgrade MySQL databases.
Now open Mysql Workbench and it should list all your tables correctly
If you are using linux distro the run following command:
mysql_upgrade -u root -p
I set Authenticated Users with all privileges to the var/folders/y2/
For me work fine ;)
Before the process I removed authenticated users privileges.
Close and reopen Workbench. it worked for me.
Stop server.
close workbench window
start server
open workbench window
worked for me .. windows 64bit
I had that error with MySQL 8, win10. I've noticed that this line Where the error was
Was leading to another directory trying to find the my.ini file. Looked for it, found it in that directory, changed it. Opened Workbench, clik on every item that was in gray, and turned it into black and that's it!! Ok now!!