ให้ทำตามด้านล่าง ใต้คำว่า "จบ" ก่อน แล้วค่อยมาทำตรงนี้ต่อ แต่ว่ามันจะมั่วๆหน่อย โชคดีผีกัดหัว
sudo mysql -u root -p
ให้ใส่ password = อะไรก็ได้ แต่จำให้ได้ล่ะ
GRANT ALL PRIVILEGES ON *.* TO pi@localhost IDENTIFIED BY 'อะไรก็ได้ แต่จำให้ได้ล่ะ'
ตอนนี้เราจะสามารถเข้า mysql ได้ ด้วยคำสั่งนี้
mysql -u pi -p
แล้วก็ใส่ password ไป
create database test_db;
use test_db;
create table gpio_input ( id int, part_number varchar(20), date_time varchar(20), rpi_name varchar(20), primary key (id) );
show tables;
create table rpi_name ( id int, name varchar(20), primary key (id) );
insert into gpio_input (id, part_number, date_time, rpi_name) values (1, "000001" , "10/09/2019", "rpi1");
insert into gpio_input (id, part_number, date_time, rpi_name) values (1, "000001" , "10/09/2019", "rpi1");
\quit;
ดูตามนี้
https://www.youtube.com/watch?v=yxy0yvZnX1Y
แต่เจอปัญหา qsqldatabase: qmysql driver not load แก้ได้ด้วยติดตั้งคำสั่งนี้
sudo apt-get install libqt5sql5-mysql
จบ
================================================================
ที่อยู่ด้านล่างหลังจากนี้ คือที่ทำไว้ก่อนหน้านี้ แต่ไม่สำเร็จ แต่ก็ไม่อยากลบ
มือใหม่หัดเล่น database ครับ เขามีไรสอนบนเวป ก็เอาอันนั้นล่ะ ก็เลยเลือก mysql มาเป็นฐานข้อมูล
เริ่มจาก
sudo apt-get install mysql-server
ระหว่างลงโปรแกรม จะเจอคำถามให้ใส่ password ก็ใส่ๆไป
ถ้าอยากแก้ไขรหัสผ่าน
sudo mysqladmin -u root password 'newpass'
ถ้าต้องการตรวจสอบว่าฐานข้อมูลเปิดอยู่รึเปล่า ให้ใช้คำสั่งต่อไปนี้
sudo netstat -tap | grep mysql
ถ้าโปรแกรม mysql เปิดอยู่ ควรจะเห็นอะไรคล้ายๆนี้
tcp 0 0 localhost:mysql *:* LISTEN 2556/mysqld
แต่ถ้า mysql ไม่ start อยู่ ให้ใช้คำสั่งต่อไปนี้
sudo service mysql restart
ตั้งค่า configure เบื้องต้น
ให้เราเข้าไปที่ /etc/mysql/my.cnf ถ้าเราต้องการให้ฐานข้อมูลสามารถอ่านจาก network ได้ ให้เข้าไปแก้ bind-address
bind-address = 192.168.1.10
หรือถ้าไม่มีอยู่ใน my.cnf ก็ให้เข้ามาดูในนี้แทน
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
แล้วแก้ไขจาก
bind-address = 127.0.0.1 ให้เป็น
bind-address = 0.0.0.0
**** ใช้ _ แทน - ****
เสร็จแล้ว ให้ทำตามนี้ เพื่อให้เครื่องอื่น(ตามที่ระบุ) สามารถเข้ามาใช้งาน database ได้
Grant access to a database user
- Log in to the database server.
- Connect to the MySQL database as the
rootuser. -
Enter the following command:
GRANT ALL ON <local database name>.* TO <remote web node username>@<remote web node server ip address> IDENTIFIED BY '<database user password>';
GRANT ALL ON RTKS_database.* TO rtks@192.168.1.108 IDENTIFIED BY 'password';
ip 192.168.1.108 = remote machine
ip 192.168.1.110 = server machine
Verify database access
On your remote machine, enter the following command to verify the connection works:
mysql -u <local database username> -h <database server ip address> -p
For example,
mysql -u rtks -h 192.168.1.110 -p
แล้วก็ใส่ password ตามที่ตั้งไว้
หลังจากแก้ไข my.cnf ให้ restart service ดังนี้
sudo service mysql restart
เข้าใช้งาน mysql ครั้งแรก
mysql -u root -p
หมายถึง user root no password
จะเห็น version 5.6.25
พิมพ์ exit เพื่อออก
แต่ถ้าในกรณีที่เราเข้า mysql -u root -p แล้วขึ้นว่า
mysqladmin: connect to server at 'localhost' failed error:
'Access denied for user 'root'@'localhost' (using password: YES)'
ให้ทำดังนี้
- Open & Edit
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf - Add
skip-grant-tablesunder[mysqld] - Restart Mysql, sudo /etc/init.d/mysql stop, sudo /etc/init.d/mysql start
- You should be able to login to mysql now using the below command
mysql -u root -p use mysql; update user set authentication_string=PASSWORD("") where User='root'; update user set plugin="mysql_native_password" where User='root'; # THIS LINE flush privileges; quit;- Go back to
/etc/mysql/mysql.conf.d/mysqld.cnfand remove/comment skip-grant-tables - Restart Mysql, sudo /etc/init.d/mysql stop, sudo /etc/init.d/mysql start
- Now you will be able to login with the new password
mysql -u root -p
https://stackoverflow.com/questions/41645309/mysql-error-access-denied-for-user-rootlocalhost
และ
https://stackoverflow.com/questions/37879448/mysql-fails-on-mysql-error-1524-hy000-plugin-auth-socket-is-not-loaded
แต่ถ้าไม่ถนัดในการใช้ terminal ก็มีทางเลือกคือ
ให้เข้า software center แล้วลง mysql workbench
เมื่อลงเสร็จแล้ว คลิกที่หน้าแรก ก็จะเข้าไปเจอหน้า local instance
ลองสร้าง database ใหม่ ชื่อ test, utf8-default collation กด apply
ก็จะมี database ก้อนใหม่ให้เห็นที่ด้านล่างซ้ายมือ
ให้คลิกขวาที่ database แล้วเลือกเป็น set as default schema
create new table ที่เมนูด้านบน
ก็จะให้สร้าง table ใหม่ ก็ใส่ชื่อลงไป
คลิกที่ด้านล่าง column name ก็ใส่ชื่อ column ลงไป กำหนดให้เป็น type อย่างที่ต้องการ
ถ้าต้องการใส่ข้อมูล ให้คลิกขวาที่ table(เมนูด้านซ้าย) แล้วเลือก select rows
ลองเล่นกันดูแล้วกัน คร่าวๆแค่นี้
และเมื่อเราจะเริ่ม project qt ให้เราเพิ่มใน .pro ด้วย sql
เช่น QT
แต่ลงไปลงมา เขียนโค้ด ใช้ไม่ได้ เลยไปลง sqlite3 แทนดีกว่า
ที่มา : https://help.ubuntu.com/12.04/serverguide/mysql.html

