Google Cloud WordPress MySQL password change - mysql

I have just managed to get a WP instance up and running on a Google Cloud VM. All is good and it is running WP fine. I have managed to update the 'temporary' passwords as advised for root MySQL user and phpMyAdmin user.
However it also recommends updating the password for the MySQL wordpress user. I am not sure how to do this and can't find much useful info.
Help please.

Looks like you can change the passwords in the phpMyAdmin interfaces.
This stackoverflow post Talks about how to access the pypMyAdmin interface.
Copied below for posterity:
First off, when you deploy the one-click installation, you need to ensure you have 'install phpMyAdmin' checked - we will assume that was installed and you did not overwrite the phpMyAdmin default user & password after :)
Next, navigate to the Google Cloud Console and find your project where your WordPress installation is located. From the left side menu, open Compute Engine and on the VM instances tab, select your virtual machine.
Once you open that view, scroll down to the custom metadata section
and find the 'MYSQL_ROOT_PASSWORD' value. That is the password you
need to log into phpMyAdmin.
After you know that value, navigate to the external IP of your machine
and add /phpmyadmin after the IP (e.g. xxx.xxx.xxx.xxx/phpmyadmin).
The default user will be 'root' and then enter the corresponding value
from MYSQL_ROOT_PASSWORD in custom metadata. That should do the trick
and get you access into phpMyAdmin.
Once logged into phpMyAdmin, This post talks about navigating to the Users table and updating the password on the user record. They do note that if you're changing the root user's password:
At this point, your wordpress site will not be able to access the contents of the database until you have updated the password on your wp-config file. Let’s do that...
But it sounds like you have root taken care of so this might not be an issue.

Related

Connecting a Lightsail instance of WordPress to a Lightsail MySQL Database

This is my first go at AWS. I’m trying to install a WordPress site. Here’s what I’ve done so far:
Created a LAMP instance in Lightsail. I’m able to:
SSH into the webroot with Terminal
SFTP into the webroot with Filezilla
Successfully uploaded and expanded the latest version of WP
in the webroot
Using the public IP, accessed the WP setup screen
Created an instance of a MySQL database in Lightsail. I’m able to:
Use Terminal to tunnel into and access it in the browser with
PHPMyAdmin
Successfully create an empty database and user with full
access permissions
Additionally:
Both instances are running in the same region: Virginia, Zone A
(us-east-1a)
I have enabled both Data migration and Public Mode
At the WordPress setup screen I enter the database name, user, password and host. I believe the database host is what the instance calls the endpoint? After all that, I get the following error:
We were able to connect to the database server (which means your username
and password is okay) but not able to select the publicUser database.
I’m quite sure the required credentials are correct, so it must be something with how I’m doing the setup? Any ideas? If anyone has this same setup, can you please post your WordPress config file with the sensitive information removed so I can see how you're connecting?
You've done everything correctly so far. WordPress is now looking for a database with the name publicUser which it cannot find. You either did not create that database (via PHPMyAdmin) yet, or are using the wrong database name.
Once you have either created the database or corrected the configured database name, it should work.

Cpanel mass DB import from root user

I have been tasked with migrating a VPS previously build on a very shady centos 5 system (no hosting environment) into a perfectly working centos 7/cpanel environment. The old server setup had 29 websites using the root MySQL user/password in order to get his connections to work. I imported the databases and matched the root password but this is really not an ideal setup because the databases are not linked to the cpanel user and well using the root password in production is very bad...
So my question is, now that the databases are on the server (can only be seen from the root phpmyadmin) how can I link them to a cpanel account?
From the root PHPMyAdmin in WHM, there was no "user" tab which is odd. I guess cpanel made sure all the databases were created from its cpanel system. But how can I link all the databases if I can't access that page? If the only way is by SSH, is there a way to do them all in batch?
There is no automated way to do this as far as I know.
The best option (unfortunatelly it involves some work and non automated actions) is to login to each of the accounts cPanel account (you can do that from WHM by clicking on the cPanel account which is displayed next to the cPanel account when you use List Accounts) and then use the SQL section to create a new database, a new user for that database, provided grants to that user.
Then you can use the Database Map Tool available in WHM to grant access to that database to a specific cPanel user, map rights and so on. You have to repeat this for each of your cPanel accounts. Last but not least, you'll have to modify the configuration files for each of your websites to reflect the new mysql settings (db name, user, password etc).
I know this is a slow and step by step method but it would be the best and safest especially that 29 accounts are not that much.

How can I let someone view and edit specific databases in MySQL

"How can I let someone view and edit specific databases in MySQL"
I ask this question to my web hosting company then they said "You need to give cPanel ID and password for him to edit your databases
I feel so insecure in giving full access of cPanel
I just want to add an user ID and password into specific databases then I'll give them for him to access
In cPanel it's easy to create a FTP user for someone to access specific folders.
Isn't there any way to do it like FTP?
If you can upload scripts to the server (I assume you can) you can always install standalone instance of PhpMyAdmin, and configure this instance to only access specific server/databases. Moreover - creating custom login and password allows you to grant access only to specific database/tables etc.

No "Privileges" in PHPMyAdmin, already tried deleting cookies/using FF/loggin in as 'root'

I'm well aware this has been asked lots of times before but none of the answers so far has been applicable for me or solved the problem.
I want to run SQL Queries from Python using MySQLdb
I get
OperationalError: (1130, "Host '77-172-143-12.ip.telfort.nl' is not
allowed to connect to this MySQL server")
This IP (77-172-143-12) is
for configuring my own router (at home)
I should create a new USER for this
but I don't have the privileges to CREATE USER...s
The Privileges tab is missing from PHPMyAdmin, also when I use Firefox and delete all cookies.
I can't log in
with root and a blank password: I got only one username/login from
my web hosting company when I registered my domain with them.
The
database is on a remote server which I don't manage myself and I seem
not to have any access to any MySQL config files.
How could this possibly be solved?
UPDATE
I understood from the answers that I can't solve this myself since my hosting provider doesn't allow it (by default anyway). I'll contact them to see whether they're willing and able to do something about it.
If somebody else has the same problem: as a workaround I'll keep using my Python routines on my local MySQL database. I'll then use the Wordpress export and import tools to transfer my (updated) local database to the remote server where my website is located. That's not too bad since it will also result in frequent backups of my articles.
It's normal that phpMyAdmin does not show you the Privileges (or Users in recent versions) tab, since you're not privileged.
Usually, on shared servers, hosting providers also use a shared MySQL server, thus they won't allow you root access.
They usually also allow MySQL access only from their web server and not from your home machine, as an additional security measure.
You need to add your hostname (see myip.nl) as a new host in DirectAdmin and then you can connect to the database on a remote server from a local application (Python in this case). See the screenshot below (sorry it's in Dutch!)

Installing phpmyadmin to be able to manage the mysql database the admin created for me

I dont have access to cPanel. I only can access the root of the site I am working on using FTP, with the domain name, user and password. I want to install phpmyadmin on the root so that I can manage the mysql database the admin created for me. I have the db name, user and password. What do I need to do? Do I need to download phpmyadmin, upload install it? Please give me some details and howto.
Will I actually be able to use it for such?
Also, how to migrate all contents of another mysql databse that I have also access to (having its: db name, user and password) to this one, that was created for the site I am working with.
Download phpmyadmin from the following site: http://sourceforge.net/projects/phpmyadmin/files/phpMyAdmin/3.5.8.1/phpMyAdmin-3.5.8.1-all-languages.zip/download#!md5!a65d444787645735c75bca49cdb558cb
Upload it in a seperate folder on your webserver via FTP
Go to this folder and login with your database username and password
Correct the warnings and error on the bottom of the screen
(mostly security issues)
done :)
When you have any questions with errors or warnings please post a new question.