{"id":380,"date":"2026-02-03T20:50:24","date_gmt":"2026-02-03T15:20:24","guid":{"rendered":"https:\/\/griffso.com\/blogs\/?p=380"},"modified":"2026-02-03T20:50:26","modified_gmt":"2026-02-03T15:20:26","slug":"common-errors-on-macos-php","status":"publish","type":"post","link":"https:\/\/griffso.com\/blogs\/common-errors-on-macos-php\/","title":{"rendered":"Common Errors on macOS PHP"},"content":{"rendered":"\n<p>You may see:<\/p>\n\n\n\n<p>\u2022 Connection refused<br>\u2022 Access denied for user<br>\u2022 Can&#8217;t connect to local MySQL server<br>\u2022 No such file or directory<\/p>\n\n\n\n<p>These usually happen because:<\/p>\n\n\n\n<p>\u274c MySQL service is stopped<br>\u274c Wrong socket path<br>\u274c Incorrect credentials<br>\u274c Wrong hostname<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u2705 Step 1: Check MySQL Service on macOS<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">For XAMPP:<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open <strong>XAMPP Manager<\/strong><\/li>\n\n\n\n<li>Start <strong>MySQL<\/strong><\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">For MAMP:<\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Open MAMP<\/li>\n\n\n\n<li>Click <strong>Start Servers<\/strong><\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">For native MySQL:<\/h3>\n\n\n\n<p>Open terminal and run:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mysql.server start\n<\/code><\/pre>\n\n\n\n<p>If MySQL is not running \u2192 PHP cannot connect.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u2705 Step 2: Verify Database Credentials<\/h2>\n\n\n\n<p>Open your PHP file:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$host = \"localhost\";\n$user = \"root\";\n$password = \"\";\n$database = \"test_db\";\n<\/code><\/pre>\n\n\n\n<p>\u2714 Database name correct<br>\u2714 Username correct<br>\u2714 Password correct<\/p>\n\n\n\n<p>Check inside:<\/p>\n\n\n\n<p>\ud83d\udc49 <a>http:\/\/localhost\/phpmyadmin<\/a><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u2705 Step 3: Fix Socket Error (Very Common on macOS)<\/h2>\n\n\n\n<p>Sometimes macOS uses a different MySQL socket path.<\/p>\n\n\n\n<p>Try using:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$host = \"127.0.0.1\";\n<\/code><\/pre>\n\n\n\n<p>Instead of:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$host = \"localhost\";\n<\/code><\/pre>\n\n\n\n<p>\ud83d\udca1 This solves connection refused issue in most cases.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u2705 Step 4: Check MySQL Port<\/h2>\n\n\n\n<p>Default port:<\/p>\n\n\n\n<p>\ud83d\udc49 3306<\/p>\n\n\n\n<p>In phpMyAdmin \u2192 Server Information \u2192 check port number.<\/p>\n\n\n\n<p>If different, connect like:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$conn = mysqli_connect(\"127.0.0.1\", \"root\", \"\", \"test_db\", 3307);\n<\/code><\/pre>\n\n\n\n<p>(Change port as needed)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\u2705 Step 5: Fix Access Denied Error<\/h2>\n\n\n\n<p>In phpMyAdmin:<\/p>\n\n\n\n<p>\u2714 Go to User Accounts<br>\u2714 Edit privileges of root\/user<br>\u2714 Allow all permissions<\/p>\n\n\n\n<p>Save and retry.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\ude80 Professional Error Handling Code<\/h2>\n\n\n\n<p>Always use this:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$conn = mysqli_connect($host, $user, $password, $database);\n\nif (!$conn) {\n    die(\"MySQL Connection Failed: \" . mysqli_connect_error());\n}\n<\/code><\/pre>\n\n\n\n<p>This shows exact error reason.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83d\udccc Common macOS Mistakes<\/h2>\n\n\n\n<p>\u274c Forgetting to start MySQL server<br>\u274c Using localhost instead of 127.0.0.1<br>\u274c Wrong port number<br>\u274c Permission issues<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">\ud83c\udfaf Final Words<\/h2>\n\n\n\n<p>On macOS, most PHP MySQL connection errors happen due to:<\/p>\n\n\n\n<p>\ud83d\udc49 MySQL not running<br>\ud83d\udc49 Wrong host or socket<\/p>\n\n\n\n<p>Once fixed properly, your PHP app will work smoothly.<\/p>\n\n\n\n<p>If this helped you, share it with other Mac developers \ud83d\ude0a<\/p>\n<div class=\"pld-like-dislike-wrap pld-template-1\">\n    <div class=\"pld-like-wrap  pld-common-wrap\">\n    <a href=\"javascript:void(0)\" class=\"pld-like-trigger pld-like-dislike-trigger  \" title=\"\" data-post-id=\"380\" data-trigger-type=\"like\" data-restriction=\"cookie\" data-already-liked=\"0\">\n                        <i class=\"fas fa-thumbs-up\"><\/i>\n                <\/a>\n    <span class=\"pld-like-count-wrap pld-count-wrap\">2    <\/span>\n<\/div><div class=\"pld-dislike-wrap  pld-common-wrap\">\n    <a href=\"javascript:void(0)\" class=\"pld-dislike-trigger pld-like-dislike-trigger  \" title=\"\" data-post-id=\"380\" data-trigger-type=\"dislike\" data-restriction=\"cookie\" data-already-liked=\"0\">\n                        <i class=\"fas fa-thumbs-down\"><\/i>\n                <\/a>\n    <span class=\"pld-dislike-count-wrap pld-count-wrap\"><\/span>\n<\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>You may see: \u2022 Connection refused\u2022 Access denied for user\u2022 Can&#8217;t connect to local MySQL server\u2022 No such file or directory These usually happen because: \u274c MySQL service is stopped\u274c Wrong socket path\u274c Incorrect credentials\u274c Wrong hostname \u2705 Step 1: Check MySQL Service on macOS For XAMPP: For MAMP: For native MySQL: Open terminal and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-container-style":"default","site-container-layout":"default","site-sidebar-layout":"default","disable-article-header":"default","disable-site-header":"default","disable-site-footer":"default","disable-content-area-spacing":"default","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4],"tags":[153,204],"class_list":["post-380","post","type-post","status-publish","format-standard","hentry","category-coding-help-programming-tips-code-examples-coding-resources-debug-guide-software-development-learn-to-code-coding-best-practices-coding-challenges-coding-tutorials","tag-webdevelopment","tag-websecurity"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/griffso.com\/blogs\/wp-json\/wp\/v2\/posts\/380","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/griffso.com\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/griffso.com\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/griffso.com\/blogs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/griffso.com\/blogs\/wp-json\/wp\/v2\/comments?post=380"}],"version-history":[{"count":1,"href":"https:\/\/griffso.com\/blogs\/wp-json\/wp\/v2\/posts\/380\/revisions"}],"predecessor-version":[{"id":381,"href":"https:\/\/griffso.com\/blogs\/wp-json\/wp\/v2\/posts\/380\/revisions\/381"}],"wp:attachment":[{"href":"https:\/\/griffso.com\/blogs\/wp-json\/wp\/v2\/media?parent=380"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/griffso.com\/blogs\/wp-json\/wp\/v2\/categories?post=380"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/griffso.com\/blogs\/wp-json\/wp\/v2\/tags?post=380"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}