"high sierra" pdo_mysql? - macos

I upgrade my sierra to High sierra, then found my php database connection does not work anymore. It turns out the PDO_MYSQL driver is not installed by default. I reinstalled the mysql, which does not help.
Does anyone else have the same problem? How can I install the PDO driver?
Thanks

I just had the same issue upgrading today. I was using brewed versions of php. Moved to 'native' setup now. Mysql 5.7 was installed and working pre the update. The connection still works when you put in 127.0.0.1 as a host name.
Lands up that the php.ini file is not created on update, meaning that the location of the mysql socket is incorrect.
To fix this, I copied the /etc/php.default to /etc/php.ini
Once done, open terminal and run
mysql_config --socket
Keep the output.
Open the php.ini file and find/edit this line.
mysqli.default_socket =/tmp/mysql.sock
Save and restart the apache server
sudo apachectl restart

Related

XAMPP Errors on Mac OS X Mojave

I am running MacOS Mojave 10.14 with XAMPP 7.2.5
Earlier today, I tried to start up XAMPP after a crash/restart. XAMPP Manager was unable to start the MYSQL Server. Apache did start correctly.
Figuring there was a potential corruption, I used my Time Machine to restore my XAMPP folder (to a 36-hour old file) in Applications.
Now when I try to run XAMPP Manager, I get a "Cannot find any readable ctl script" error message.
I've tried to run MYSQL Server directly from CLI. I receive the following message:
./mysql.server: line 200: my_print_defaults: command not found
Starting MariaDB
ERROR! Couldn't find MariaDB server (/Applications/XAMPP/xamppfiles/bin/mysqld_safe)
Any thoughts on how to resolve?
The issue has to do with a quirk with Time Machine - it does not completely regenerate all recorded folders/files. A bit of a pain.
I was able to run XAMPP from the command line:
-> cd /Applications/xampp/xamppfiles
-> sudo ./xampp start
To check on MYSQL status:
-> mysql status -u [username] -p [password]
Issue resolved
I spend a day on this and the solution in my case was:
Uninstall XAMPP
Delete all files except my databases folders from ⁨Applications/XAMPP⁩/xamppfiles/var⁩/mysql (there was some .err and log files if I remember well)
Reinstall XAMPP
Reconfigure it. If you use different user than root to access your databases you need to recreate it.
I got the "Cannot find any readable ctl script" error after a Time Machine restoration, too. I'm on 10.12.6 and XAMPP 5.6.
You are correct that it appears to be a TM issue, but I was able to resolve it by entering TM and specifically selecting the directories in XAMPP/xamppfiles/ that TM would not copy over by just selecting XAMPP/xamppfiles/. (In your case, you would not want to copy over /var/mysql, assuming you want to keep your data.)
Relief. There's nothing worse than realizing your trusty backup is not so trusty.

enable ldap module in laravel homestead

Currently have an issue where i can not enable the ldap module in homestead. I have changed multiple php.ini files and still nothing seems to be working. Has anyone else had issues with enabling modules in homestead?
Side note: when trying to restart php-fpm i am getting a permission denied issue. They prompt me with a password (which i have tried "secret") but still cant seem to get that to work either.
Have restarted the homestead instance multiple times as well. no prevail.
any thoughts?
Citti
I think this question deserves its own answer as it's pretty easy to install the wrong version of ldap on homestead and not know why things aren't working.
TL;DR: Match the version of ldap to the version of php you're running & install with apt-get.
For example, running homestead v.6.1.0:
cd HOMESTEADFOLDER # on your host
vagrant ssh # access the guest machine
sudo apt-get update # update apt-get package list
sudo apt-get install php7.1-ldap # or whatever version
In my example above, if you switch out php7.1-ldap for php7.0-ldap everything appears to install correctly (it does in fact install correctly) but, in reality, you've installed the module to a version of php that's not actually running. It took me several attempts at rebooting FPM to figure out this is what I had done.
Side note: apt-get will restart php and reload modules so there's no need to try and reboot the server or mess about with .ini files.
While ssh-ed in to the guest machine, you can check that the package is installed with php -m
If ldap is a thing your project needs, it's probably a better idea to handle this in a script. The answer referenced by fh-jashmore in his comment above comment has a simple but solid example: How to automatically enable php extensions in Homestead on vagrant up

Xdebug and Netbeans are not communicating with each other

I have spent a couple of days surfing the internet to find an answer to my question. I have tried everything I could but have been unsuccessful thus far in solving this problem. Netbeans keeps giving Waiting for Connection (netbeans-xdebug).
I am using the following software:
XAMPP Version 1.8.1.
Windows 7
Netbeans IDE 7.2.1
Xdebug 2.2.1
I installed the latest version according via the wizard for the xdebug.org site (http://xdebug.org/wizard.php). Xdebug is working according to phpinfo().The HMTL output in my browser (Firefox 17.0.1) shows xdebug code. However this is not communicated back to netbeans. Using Netstat via command prompt (Run -> cmd.exe) shows that there is a TCP connection on port 9000. However , nothing is reported back in Netbeans.
I have tried several different alternatives, for example:
Installing a similar IDE, Eclipse PDT. Eclipse shows that Xdebug is
working. However, because Eclipse is lacking functions I need I
wanted to use Netbeans.
Installing Netbeans on Ubuntu 12.04 LTS.
Still the same problem. Netbeans not working (waiting for
connection). Also output in browsers shows that Xdebug is working.
Whenever I install on a new Linux machine: "php xdebug" and netbeans I run these simple steps and I've always managed to corect integration of xdebug on netbeans.
So with the data you provide, I can only help you solve, the half of your problem. Allowing you to connect on Linux machines:
Installation with pecl:
# apt-get install php5-dev php-pear
# pecl install xdebug
Or direct installation:
# apt-get install php5-xdebug
find the library:
# find / -name 'xdebug.so'
/usr/lib/php5/20090626+lfs/xdebug.so
Edit phi.ini file:
...
zend_extension=/usr/lib/php5/20090626+lfs/xdebug.so
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
...
Restart web-server in your case: Apache
$ /etc/init.d/apache2 restart
According to what you have posted:
Installing Netbeans on Ubuntu 12.04 LTS.
I have used the installation method "apt-get" for distributions ".deb".
If you are using a distribution ".rpm" can do the same with "yum"
Many of these commands are surely simplified within the xampp.
But if you running this commands from console will not affect the final result.
Another important note about Windows's machines and Linux's machines,
You should check that your firewall rules are allowing to establish a connection from netbeans to xdebug.
I know this is old but for people using Ubuntu this might help.
OS Version = Ubuntu 14.04.3 LTS; Codename: trusty
PHP Version = PHP 5.5.9-1ubuntu4.11 (cli) (built: Jul 2 2015 15:17:32)
Apache Version = Server version: Apache/2.4.7 (Ubuntu)
Procedure
Install xdebug for php5
sudo apt-get install php5-xdebug
Open php.ini and add the following lines below (usually sudo vim /etc/php5/apache2/php.ini)
xdebug.remote_enable=On;
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000;
xdebug.remote_handler="dbgp";
Restart apache and your good to go
sudo service apache2 restart
Note 1: I have not tried doing this without firefox add-on for xdebug, so if after doing the procedure above and still to no avail, download the add-on for firefox Easy Xdebug
Note 2: I did not touch the PHP Configuration of Netbeans
Note 3: I did not touch xdebug.ini

psql: could not connect to server: No such file or directory (Mac OS X)

Upon restarting my Mac I got the dreaded Postgres error:
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
The reason this happened is because my macbook froze completely due to an unrelated issue and I had to do a hard reboot using the power button. After rebooting I couldn't start Postgres because of this error.
WARNING: If you delete postmaster.pid without making sure there are really no postgres processes running you, could permanently corrupt your database. (PostgreSQL should delete it automatically if the postmaster has exited.).
SOLUTION: This fixed the issue--I deleted this file, and then everything worked!
/usr/local/var/postgres/postmaster.pid
--
and here is how I figured out why this needed to be deleted.
I used the following command to see if there were any PG processes running. for me there were none, I couldn't even start the PG server:
ps auxw | grep post
I searched for the file .s.PGSQL.5432 that was in the error message above. i used the following command:
sudo find / -name .s.PGSQL.5432 -ls
this didn't show anything after searching my whole computer so the file didn't exist, but obviously psql "wanted it to" or "thought it was there".
I took a look at my server logs and saw the following error:
cat /usr/local/var/postgres/server.log
at the end of the server log I see the following error:
FATAL: pre-existing shared memory block (key 5432001, ID 65538) is still in use
HINT: If you're sure there are no old server processes still running, remove the shared memory block or just delete the file "postmaster.pid".
Following the advice in the error message, I deleted the postmaster.pid file in the same directory as server.log. This resolved the issue and I was able to restart.
So, it seems that my macbook freezing and being hard-rebooted caused Postgres to think that it's processes were still running even after reboot. Deleting this file resolved. Lots of people have similar issues but most the answers had to do with file permissions, whereas in my case things were different.
None of the above worked for me. I had to reinstall Postgres the following way :
Uninstall postgresql with brew : brew uninstall postgresql
brew doctor (fix whatever is here)
brew cleanup
Remove all Postgres folders :
rm -r /usr/local/var/postgres
rm -r ~/Library/Application\ Support/Postgres
Reinstall postgresql with brew : brew install postgresql
Start server : brew services start postgresql
You should now have to create your databases... (createdb)
If you're on macOS and installed postgres via homebrew, try restarting it with
brew services restart postgresql
If you're on Ubuntu, you can restart it with either one of these commands
sudo service postgresql restart
sudo /etc/init.d/postgresql restart
Maybe this is unrelated but a similar error appears when you upgrade postgres to a major version using brew; using brew info postgresql found out this that helped:
To migrate existing data from a previous major version of PostgreSQL run:
brew postgresql-upgrade-database
Here is my way:
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
rm /usr/local/var/postgres/postmaster.pid
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
The following commands helped me out. The issue was with the PostgreSQL data version. Once upgraded, it started working fine for me.
brew upgrade postgresql
brew postgresql-upgrade-database
brew services restart postgresql
if your postmaster.pid is gone and you can't restart or anything, do this:
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
as explained here initially
For me, the solution was simply restart my computer. I first tried restarting with Brew services and when that didn't work, restarting seemed like the next best option to try before looking into some of the more involved solutions. Everything worked as it should after.
Another class of reasons why this can happen is due to Postgres version updates.
You can confirm this is a problem by looking at the postgres logs:
tail -n 10000 /usr/local/var/log/postgres.log
and seeing entries like:
DETAIL: The data directory was initialized by PostgreSQL version 12, which is not compatible with this version 13.0.
In this case (assuming you are on Mac and using brew), just run:
brew postgresql-upgrade-database
(Oddly, it failed on run 1 and worked on run 2, so try it twice before giving up)
Hello world :)The best but strange way for me was to do next things.
1) Download postgres93.app or other version. Add this app into /Applications/ folder.
2) Add a row (command) into the file .bash_profile (which is in my home directory):
export PATH=/Applications/Postgres93.app/Contents/MacOS/bin/:$PATH
It's a PATH to psql from Postgres93.app. The row (command) runs every time console is started.
3) Launch Postgres93.app from /Applications/ folder. It starts a local server (port is "5432" and host is "localhost").
4) After all of this manipulations I was glad to run $ createuser -SRDP user_name and other commands and to see that it worked! Postgres93.app can be made to run every time your system starts.
5) Also if you wanna see your databases graphically you should install PG Commander.app. It's good way to see your postgres DB as pretty data-tables
Of, course, it's helpful only for local server. I will be glad if this instructions help others who has faced with this problem.
This problema has many sources, and thus many answers. I've experienced each one of them.
1) If you have a crash of some sort, removing the /usr/local/var/postgres/postmaster.pid file is probably required as postgres may not have handled it properly. But ensure that no process is running.
2) Craig Ringer has pointed out in other posts that Apple's bundling of postgreSQL leads to pg gem installation issues Setting the PATH environment variable is a solution.
3) Another solution, is to uninstall and reinstall the gem. A brew update may be necessary as well.
If you stumble upon this post, if you can pinpoint one of the sources, you'll save time...
I was facing a similar issue here I solved this issue as below.
Actually the postgres process is dead, to see the status of postgres run the following command
sudo /etc/init.d/postgres status
It will says the process is dead`just start the process
sudo /etc/init.d/postgres start
This happened to me after my Mac (High Sierra) froze and I had to manually restart it (press and hold the power button). All I had to do to fix it was do a clean restart.
I had the same issue.
Most of the times, the problem is the fact that there's a leftover file
/usr/local/var/postgres/postmaster.pid
which works for most people, but my case was different - I tried googling this issue for last 3 hours, uninstalled postresql on OSX through brew, purged the database, nothing worked.
Finally, I noticed that I had an issue with brew that whenever I tried to install anything, it popped:
Error: Permission denied # rb_sysopen - /private/tmp/github_api_....
or something like it at the end of an install.
I simply did sudo chmod -R 777 /private/tmp and it finally works!
I'm writing this down because this might be a solution for someone else
I faced the same problem for psql (PostgreSQL) 9.6.11.
what worked for me -
remove postmaster.pid -- rm /usr/local/var/postgresql#9.6/postmaster.pid
restart postgres -- brew services restart postgresql#9.6
If postmaster.pid doesn't exist or the above process doesn't work then run --
sudo chmod 700 /usr/local/var/postgresql#9.6
For those running into this issue on M1 macs, try deleting this file and then restarting the brew service:
rm /opt/homebrew/var/postgres/postmaster.pid
My problem ended up being that I was using Gas Mask (a hosts file manager for Mac), and I didn't have an entry for localhost in the hosts file I was using.
I added:
127.0.0.1 localhost
And that resolved my problem.
I'm not entirely sure why, but my Postgres installation got a little bit screwed and some files were deleted resulting in the error OP is showing.
Despite the fact that I am able to run commands like brew service retart postgres and see the proper messages, this error persisted.
I went through the postgres documentation and found that my file /usr/local/var/postgres was totally empty. So I ran the following:
initdb /usr/local/var/postgres
It seems some configurations took place with that command.
Then it asked me to run this:
postgres -D /usr/local/var/postgres
And that told me a postmaster.pid file already exists.
I just needed to know if brew would be able to pick up the configs I just ran, so I tested it out.
ls /usr/local/var/postgres
That showed me a postmaster.pid file. I then did brew services stop postgresql, and the postmaster.pid file disappeared. Then I did brew services start postgresql, and VIOLA, the file reappeared.
Then I went ahead and ran my app, which did in fact find the server, however my databases seem to be gone.
Although I know that they may not be gone at all - the new initialization I did may have created a new data_area, and the old one isn't being pointed to. I'd have to look at where that's at and point it back over or just create my databases again.
Hope this helps! Reading the postgres docs helped me a lot. I hate reading answers that are like "Paste this in it works!" because I don't know what the hell is happening and why.
I had the same issue and it was due to an incompatible version after upgrading from version 11 to 13.2
Checking error log at:
/usr/local/var/log/postgres.log
Showed me:
DETAIL: The data directory was initialized by PostgreSQL version 11, which is not compatible with this version 13.2.
To fix I ran:
brew postgresql-upgrade-database
And then started postresql with brew:
brew services start postgresql
The causes of this error are many so first locate your log file and check it for clues. It might be at /usr/local/var/log/postgres.log or /usr/local/var/postgres/server.log or possibly elsewhere. If you installed with Homebrew you can find the location in ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist.
I had this same concern when connecting trying to start a PostgreSQL database server on MacOS Monterey.
When I run the command below to restart the PostgreSQL database server:
brew services restart PostgreSQL
It restarts but when I try to check the status of the PostgreSQL database server using the command below, I get an error:
Name Status User File
mysql started promisepreston ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
nginx started promisepreston ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
postgresql error 256 root ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
Here's what worked for me:
First, I checked the log file for the PostgreSQL database server to what was the cause of the error using the command below:
cat /usr/local/var/log/postgres.log
OR
nano /usr/local/var/log/postgres.log
The logs showed the following errors:
"root" execution of the PostgreSQL server is not permitted.
The server must be started under an unprivileged user ID to prevent
possible system security compromise. See the documentation for
more information on how to properly start the server.
2022-01-25 19:01:06.051 WAT [29053] FATAL: database files are incompatible with server
2022-01-25 19:01:06.051 WAT [29053] DETAIL: The data directory was initialized by PostgreSQL version 13, which is not compatible with this version 14.1.
For the root execution error I had to run the following command to fix file permissions that when messed us when I ran brew services with the sudo command prefix. Replace your-username with your MacOS username (in my case my username was promisepreston:
# Stop postgresql
sudo brew services stop PostgreSQL
# In case service file is copied to ~/Library/LaunchAgents as well
brew services stop postgresql
# Fix permission of homebrew files
sudo chown -R your-username:admin $(brew --prefix)/*
For the database files are incompatible with server I had to simply upgrade the existing PostgreSQL data files which were created using version 13 to the latest PostgreSQL version on my computer which was 14.1 by running the following command below:
brew postgresql-upgrade-database
Afterwhich, I restarted the PostgreSQL database server:
brew services restart PostgreSQL
And then checked the status using the command below:
brew services list
Then I got the output below showing that everything was working fine:
Name Status User File
mysql started promisepreston ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
nginx started promisepreston ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist
postgresql started promisepreston ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
References: Brew PostgreSQL Starts But Process Is Not Running
I had a similar error.
All of this is done from the command line (no sudo calls at all)
I verified I had PostgreSQL installed psql -V (note that's a capital "V")
I attempted to connect to the server: psql postgres
THIS IS WHERE I EXPERIENCED THE ERROR OF THIS STACK OVERFLOW QUESTION
After doing some research about possible fixes, I obviously had PostgreSQL installed, but I didn't have a default server in place.
What I had to do was create a Custom Data Directory
As far as I can tell, creating the custom data directory is the same as having a default server in place.
Since this is a new machine (MacBook Pro 2021 using apple m1 chip), I wanted to find the easiest solution possible, and I believe this Custom Data Directory is just that. The remaining steps to fix this issue are as follows:
From the home directory, I created an empty directory mkdir myData
From the home directory, Initialized a server: initdb myData (throws a bunch of files into the myData directory)
pg_ctl -D myData -l logfile start (starts the server)
psql postgres (connects to the server)
So, as someone fairly new to PostgreSQL and databases and SQL in general, couple notes:
It is possible to "quit" the connection to the server, using \q (while connected to the server, it's also possible to type "help")
It is also possible to "stop" the server, as well with pg_ctl -D myData stop
At this point I now am certain I have PostgreSQL installed, have a server I can start and stop, and have the ability to connect to/disconnect from, that server.
Go to /var/log/
and run cat postgres.log
Here you will find the reason for the failure of postgres.
If it is a smart shut down then probably your icu4c version (C++ library for Unicode) is not proper which is linked with postgres. So run the following commands.
brew upgrade
brew cleanup
This should work ;)
I've had to look up this post several times to solve this issue. There's another fix, which will also applies to similar issues with other running programs.
I just discovered you can use the following two commands.
$top
This will show all the currently running actions with their pid numbers. When you find postgres and the associated pid
$kill pid_number
I just got the same issue as I have put my machine(ubuntu) for update and got below error:
could not connect to server: No such file or directory Is the server
running locally and accepting connections on Unix domain socket
"/var/run/postgresql/.s.PGSQL.5432"?
After completing the updating process when I restart my system error gone. And its work like charm as before.. I guess this was happened as pg was updating and another process started.
SUPER NEWBIE ALERT: I'm just learning web development and the particular tutorial I was following mentioned I have to install Postgres but didn't actually mention I have to run it as well... Once I opened the Postgres application everything was fine and dandy.
#Jagdish Barabari's answer gave me the clue I needed to resolve this. Turns out there were two versions of postgresql installed while only one was running. Purging all postgresql files and reinstalling the latest version resolved this issue for me.
I removed /usr/lib from the LD_LIBRARY_PATH and it worked.
I was working in dockerfile postgres:alpine.
This answer worked for me: https://stackoverflow.com/a/45454567/15067545 on my ubuntu system.
Command: sudo service postgresql restart.

MAMP Apache Won't Start after OS X 10.8 (Mountain Lion) update

Today I updated to OS X Mountain Lion. I noticed that Apache won't start in MAMP. Nothing new seems to be in the apache log file. Running sudo apachectl -k start in Terminal gives me this:
httpd: Could not reliably determine the server's fully qualified domain name, using Ryan-Smiths-MacBook.local for ServerName
I do have ServerName defined in my httpd.conf file.
I also noticed that "Web sharing" is no longer in the Settings pane... weird.
Any Ideas?
Thanks!
Hi Ryan we had this problem
It turns out the systems own apache is running. We've documented it here http://support.servertastic.com/mamp-not-starting-after-upgrade-to-mountain-lion/
Cheers
Richard
To fix the problem, and to start MAMP apache, you can now refer to: (the above link is broken now.)
https://support.servertastic.com/mamp-not-starting-after-upgrade-to-mountain-lion/
Or simply run the following command:
sudo apachectl stop
In addition if you run into trouble where your mysql no longer will start, try killing the mysql process that may already be running by doing the following:
Open up the program called "Activity Monitor" on your Mac.
Search for a process called “mysqld“.
Click on that process and “Quit Process”
Credits:
http://eliteeternity.com/mysql-server-wont-start-mamp-red-light-mac/
http://forum.mamp.info/viewtopic.php?f=6&t=6149
In MAMP PRO 2.1.1, click Tools > Quit Built-in Apache.
I was able to solve this running OS X 10.8.4 by opening up Activity Monitor, choosing "All Processes" then killing any with "httpd" in the title. After that I was able to start MAMP and both the MYSQL and Apache servers gave the green light!
this one fix my MAMP
Just navigate to /Applications/MAMP/bin/apache2/bin using Finder, and rename envvars to _envvars (yes, just add the underscore). Boom! Done and done.
from codesoap
Had the same problem; no other tricks helped. I found I had an instance with "allow from 127.0.0.1" – removing the IP did the trick. Don't know why.
http://cl.ly/image/253g1L1W472z
The problem with OSX Mountain Lion is that /usr/lib/libpq.5.3.dylib does not exist, but /usr/lib/libpq.5.dylib does.
To fix the issue, open terminal and:
~# sudo ln -s /usr/lib/libpq.5.3.dylib /usr/lib/libpq.5.dylib
just try to modify mamp in httpd.conf with:
LoadModule php5_module /Applications/MAMP/bin/php/php5.5.3/modules/libphp5.so
My solution to the similar problem. I.e. MySQL was running fine from MAMP manager utility. Apache server did not and the "Open start page" was greyed i.e. not working.
It seems that my problem was, that the Apache server was not for one reason or another able to access it's log file apache_error.log in /Applications/MAMP/logs folder. The file seemed to be somehow "stuck" i.e. I was not able to change the access rights to the file with chmod command. Only after I deleted the log file completely and then restarted the MAMP control utility and started there the MySQL and Apache again, everything worked fine.
BR,
Janne
Had the same problem.
I then set the ServerName to localhost and the Listen port to 8080, because 80 was somehow not available (even not as sudo). In my case it seems to have fixed the problem.
If nothing works for you like me, the problem is likely that you ran your MAMP update with MAMP running, then you closed the existing MAMP without stopping your server. All you need to do is restart your machine.

Resources