Wednesday, September 1, 2021

The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

Env

  • Server Ubuntu 18.04, MySQL Server
  • Client Ubuntu 20.04, MySQL Server 8

Problem

  • เขียน bash script + python script เพื่อ clone db จาก server มา client
  • โดย export db structure exclude trigger, export data by load outfile
  • จากนั้นที่ client สร้าง db sturcture และ load infile data เข้า db จากนั้น import trigger 
  • ตอน export structure และ data จาก server ไม่พบปัญหา
  • ปัญหาเกิดตอนพยายาม import data เข้าใน client
  • มันแสดงใน python exception แบบนี้

1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

Solved

  • ที่ฝั่ง client ให้เปิดคอนฟิกไฟล์ (MySQL Server 8, Ubuntu 20.04)

sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf

  • เพิ่ม คอนฟิกประมาณนี้

secure-file-priv = ""

  • ในคอนฟิกก็จะได้ประมาณนี้

#
# The MySQL  Server configuration file.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

[mysqld]
pid-file    = /var/run/mysqld/mysqld.pid
socket        = /var/run/mysqld/mysqld.sock
datadir        = /var/lib/mysql
log-error    = /var/log/mysql/error.log
secure-file-priv = ""
local-infile = 1
Ref

  • https://stackoverflow.com/questions/32737478/how-should-i-tackle-secure-file-priv-in-mysql
  • https://computingforgeeks.com/how-to-solve-mysql-server-is-running-with-the-secure-file-priv-error/

No comments:

Post a Comment