BMS-HOSxP Community

HOSxP => แจ้งปัญหา / ขอความช่วยเหลือ => ข้อความที่เริ่มโดย: komanp ที่ กรกฎาคม 12, 2008, 00:26:22 AM

หัวข้อ: error อย่างนี้หมายถึงอะไรครับ
เริ่มหัวข้อโดย: komanp ที่ กรกฎาคม 12, 2008, 00:26:22 AM
พึ่งอัพระบบเสร็จจากเวอร์ชั่น 3.50.11.17 เป็นเวอร์ชั่น 3.51.7.2
อัพเสร็จแล้วตอน login เสร็จมันจะฟ้องอย่างรูปครับ
ช่วยหน่อยครับ มันคืออะไร
หัวข้อ: Re: error อย่างนี้หมายถึงอะไรครับ
เริ่มหัวข้อโดย: naj ที่ กรกฎาคม 12, 2008, 00:37:25 AM
ลองอ่านตามกระทู้นี้ครับ
http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=5531.0
หัวข้อ: Re: error อย่างนี้หมายถึงอะไรครับ
เริ่มหัวข้อโดย: komanp ที่ กรกฎาคม 12, 2008, 01:30:56 AM
เข้าใจแล้วครับ
ทำได้แล้ว
555555
ถามเองตอบเองเลย
http://freebsd.sothorn.org/node/6 ไปที่เว็บนี้ครับ อธิบายดี

[root@mysqlserver ~]# ps -aux |grep mysql
mysql   690  0.0  0.1  3456  1408 con- I     7:45AM   0:00.01 /bin/sh /usr/local/bin/mysqld_safe --defaults-extra
mysql   791  0.0  1.2 57904 23896 con- S     7:45AM   0:00.29 [mysqld]
root   1391  0.0  0.1  3308  1108  p0  S+    8:14AM   0:00.00 grep mysql
[root@mysqlserver ~]# mysqladmin -u root password 'xxxxxxxx'
[root@mysqlserver ~]# mysql_upgrade -u root -p
Enter password:
Looking for 'mysql' in: mysql
Looking for 'mysqlcheck' in: mysqlcheck
Running 'mysqlcheck'...
mysql.columns_priv                                 OK
mysql.db                                           OK
mysql.event                                        OK
mysql.func                                         OK
mysql.general_log
Error    : You can't use locks with log tables.
status   : OK
mysql.help_category                                OK
mysql.help_keyword                                 OK
mysql.help_relation                                OK
mysql.help_topic                                   OK
mysql.host                                         OK
mysql.ndb_binlog_index                             OK
mysql.plugin                                       OK
mysql.proc                                         OK
mysql.procs_priv                                   OK
mysql.servers                                      OK
mysql.slow_log
Error    : You can't use locks with log tables.
status   : OK
mysql.tables_priv                                  OK
mysql.time_zone                                    OK
mysql.time_zone_leap_second                        OK
mysql.time_zone_name                               OK
mysql.time_zone_transition                         OK
mysql.time_zone_transition_type                    OK
mysql.user                                         OK
Running 'mysql_fix_privilege_tables'...
OK
[root@mysqlserver ~]# mysql_fix_privilege_tables --password=xxxxxxxx
This script updates all the mysql privilege tables to be usable by
the current version of MySQL

done
[root@mysqlserver ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 16
Server version: 5.1.22-rc-log FreeBSD port: mysql-server-5.1.22

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> SET GLOBAL log_bin_trust_function_creators = 1;
Query OK, 0 rows affected (0.00 sec)

mysql>
หัวข้อ: Re: error อย่างนี้หมายถึงอะไรครับ
เริ่มหัวข้อโดย: naj ที่ กรกฎาคม 12, 2008, 06:24:10 AM
ต้องสร้าง create function get_serialnumber  เพิ่มครับดังนี้
งเรื่องคือ เจอปัญหา แล้ว หาคำตอบ ที่กระจ่างแจ้ง ยากครับ เลย เอามา Post ไว้เผื่อใครเจอ
จะได้ไม่ต้อง งม เหมือนผม เข้าเรื่องเลยล่ะ กันครับ ปัญหาดังกล่าวแก้ไขได้โดยการ ใช้คำสัง
เหล่านี้กับ MySQL Server ของเราครับ

mysql_upgrade
mysql_fix_privilege_tables
SET GLOBAL log_bin_trust_function_creators = 1;

ซึ่งบอกแบบนี้ท่านที่เชียวชาญ MySQL คงเข้าใจและจัดการต่อได้ แต่ ผม ไม่ได้กระจ่างแจ้งปานนั้น
เลยเอามาบอกต่อครับ กรณีของ ผมใช้ OS คือ FreeBSD 6.2 หลังจากเข้าระบบผ่าน SSH แล้ว ก็จัด
การทดลอง เลย แต่ ก็ ต้อง มาคิดว่า แล้วจะ เข้าหอย (Shell) ธรรมดาหรือ ว่า ใช้เมื่อ Login MySQL

หลังหาอยู่พักใหญ่ก็ได้คำตอบ ว่า คำสัง
1.) mysql_upgrade
2.) mysql_fix_privilege_tables

เข้าไปที่ Shell# ของ Root ธรรมดา นี่เอง ส่วน
3.) SET GLOBAL log_bin_trust_function_creators = 1;  ต้อง Login เข้า MySQL ก่อนครับ

เริ่มดำเนินการ

Shell# mysql_upgrade -u root -p
Enter password:
Looking for 'mysql' in: mysql
FATAL ERROR: Can't find 'mysql'

ปรากฎว่าพบ Error ครับ มันแจ้งว่าหา เจ้า mysql ไม่เจอ ซึ่งผมก็ต้อง งม อยู่อีกพักใหญ่ เลยได้คำตอบว่า
เข้าเข้ามาที่นี่ก่อน

1.) cd /usr/local/mysql/bin  (จากนั้นค่อย Run คำสั่งครับ)
2.) ./mysql_upgrade -u root -pxxxxxx (xxxxx นี่มันคือ Root Password นะครับ)

เป็นอันว่าเรียบร้อย ทุกอย่าง ดำเนินไปได้ด้วยดี ครับ แล้วจากนั้น ระบบจะแจ้งว่า

Running 'mysql_fix_privilege_tables'...
OK

จากนั้น ให้เรา Login เข้า MySQL และทำตามนี้ เป็นอันเสร็จพิธีปลุกเสก

root@mysqlserver~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 16
Server version: 5.1.22-rc-log FreeBSD port: mysql-server-5.1.22

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> SET GLOBAL log_bin_trust_function_creators = 1;
Query OK, 0 rows affected (0.00 sec)

mysql>
หัวข้อ: Re: error อย่างนี้หมายถึงอะไรครับ
เริ่มหัวข้อโดย: armds ที่ กรกฎาคม 12, 2008, 10:30:58 AM
มีข้อดีอย่างไรเหรอครับ  อยากทราบเหตุผลอะครับ
หัวข้อ: Re: error อย่างนี้หมายถึงอะไรครับ
เริ่มหัวข้อโดย: komanp ที่ กรกฎาคม 12, 2008, 18:03:53 PM
error นี้เกิดขึ้นหลังupdate ระบบ
มันจะเกิดขึ้นหลังจากที่เรา login
มันจะช่วยลด error ของmysql
ถ้าเราไม่ใช้วิธีแก้ข้างบน
เวลา loing เข้าระบบแล้วทำให้รู้สึกลำคาญครับ
ส่วนถ้าไม่ทำ แล้วจะมีผลอะไรนั้น ผมก็ไม่ทราบเหมือนกัน ใครทราบว่าเพราะอะไรช่วยบอกด้วยครับ
ที่ทำเพราะผมลำคาญที่มันขึ้นมากวน