บทความ

กำลังแสดงโพสต์ที่มีป้ายกำกับ mysql

วิธีเปลี่ยน root password database mysql บน ubuntu

 หลังจาก install mysql บน ubuntu ไปแล้วเจอปัญหาว่า จำ root password ไม่ได้ วิธีแก้ง่ายๆ ครับ สร้าง User ใหม่มันซะเลยด้วย Step ต่อไปนี้ครับ sudo mysql Welcome to the MySQL monitor.  Commands end with ; or \g. Your MySQL connection id is 24 Server version: 8.0.34-0ubuntu0.22.04.1 (Ubuntu) Copyright (c) 2000, 2023, Oracle and/or its affiliates. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> create user 'myadmin'@'localhost' IDENTIFIED BY 'mypassword'; Query OK, 0 rows affected (0.02 sec) mysql> grant all privileges on *.* to 'myadmin'@'localhost'; Query OK, 0 rows affected (0.01 sec) mysql> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.00 sec) mysql> exit;  อ่ะแล้วถ้าเราไม่อยากสร้างใหม่ล่ะเราแค่อยาก เปลี่ยน password root ของ mysql ให้ run คำ...

วิธีทำ Docker Compose LAMP Stack Linux Apache MySQL PHP

 ก่อนที่จะทำขั้นตอนนี้ ให้ทำการติดตั้ง Docker , Docker Compose ให้เรียบร้อยก่อนนะครับ   Docker Compose LAMP Stack Step 1    เตรียมโครงสร้าง Directory ไว้ตามรูปนี้ครับ   docker-web    www          - index.php    - docker-compose.yml    - Dockerfile    สร้าง folder docker-web ที่ข้างในประกอบด้วย 1. folder www   เอาไว้เก็บ file web app ของเราครับตรงนี้จะ map path เข้ากับ /var/www/html/ ของ apache ครับ 2. file docker-compose.yml ตรงนี้คือหัวใจในการ config Docker compose เรานั่นเอง 3. Dockerfile เอาไว้กำหนด docker images ที่เราต้องการใช้ครับ   Docker Compose LAMP Stack Step 2 ใส่ content ใน file Dockerfile ตามด้านล่างนี้เลย FROM php:7.1.2-apache RUN docker-php-ext-install mysqli   Docker Compose LAMP Stack Step 3 ใส่ content ใน file docker-compose.yml ตามด้านล่างนี้เลย version: "3.3" services:     www:         build: ...

วิธีทำให้ MySQL return count 0 กรณีที่ Query แล้วไม่พบข้อมูล

โดยปรกติ เวลาที่เราทำการ Query จาก MySQL แล้วมีการ คำสั่งในการคำนวณค่า เล่น Count , Sum เป็นต้น ถ้าหากกรณีที่ไม่พขข้อมูลตามเงื่อนไข จะทำให้ไม่ return result ออกมาเลย แล้วถ้าหากเราต้องการให้ return record ที่ value =0 ออกมาล่ะต้องทำอย่างไร ตัวอย่าง select count(*) cnt from test_table where  c_type='test' ; กรณีนี้ถ้า มี record ที่ c_type = test อยู่ก็จะ return จำนวน record ออกมา แต่ถ้าไม่มี จะไม่ได้ result ออกมาเลย    เทคนิคง่ายๆ ในการให้ ได้ result ที่ cnt =0 ก็คือให้เราทำการ union เพิ่มนั่นเอง เช่น select count(*) cnt from test_table where  c_type='test'  union select 0 cnt; ลองดูนะครับ ผลที่ได้ ถ้าหาก count ไม่เจอ ยังไงก็  return 0 ครับ  แต่ก็จะเจอปัญหา ถ้าหาก query เจอ type= test จะทำให้ return 2 record  คือจำนวนตามที่เจอในเงื่อนไข และก็ อีก record คือ 0 แนวทางแก้คือ เอา SUM ครอบอีกชั้นก็ได้ครับ เช่นตามตัวอย่าง select sum(cnt) from ( select count(*) cnt from test_table where  c_type='test'  union select 0 ...

แก้ปัญหา ภาษาไทย PHP กับ MySQL ด้วย tis-620

รูปภาพ
บ่อยครั้งที่มักเจอปัญหาเวลาใช้ PHP Query ข้อมูลภาษาไทยจาก MySQL แล้วกลายเป็น ???? วิธีแก้ไขคือให้ทำการ Set ค่า Collation ให้เป็น tis620_thai_ci หรือจะเลือก Default ไว้ตั้งแต่ตอน create database เลยก็ได้เช่นกัน เสร็จแล้วตอนที่ PHP connect  MySQL Database ให้ทำการกำหนด Collation name ด้วยคำสั่งนี้ mysql_query("SET NAMES TIS620"); ตัวอย่างเช่น <? $username="test"; $password="test"; $database="test"; mysql_connect("localhost",$username,$password); @mysql_select_db($database) or die( "Unable to select database"); mysql_query("SET NAMES TIS620"); ?>  กรณีนี้เราสามารถใช้  UTF8 แทน TIS620 ได้ด้วยวิธีเดียวกันครับ ซึ่งหลังๆ ผมแนะนำให้เป็น UTF8 จะดีกว่านะ