ให้การเข้าถึงระยะไกลของฐานข้อมูล MySQL จากที่อยู่ IP ใด ๆ


280

ฉันตระหนักถึงคำสั่งนี้:

GRANT ALL PRIVILEGES
ON database.*
TO 'user'@'yourremotehost'
IDENTIFIED BY 'newpassword';

แต่ก็อนุญาตให้ฉันให้ที่อยู่ IP เฉพาะเพื่อเข้าถึงฐานข้อมูล MySQL ระยะไกลนี้เท่านั้น ถ้าฉันต้องการมันเพื่อให้รีโมตโฮสต์สามารถเข้าถึงฐานข้อมูล MySQL นี้ได้ ฉันจะทำอย่างไร โดยทั่วไปฉันจะทำให้ฐานข้อมูลนี้เป็นสาธารณะเพื่อให้ทุกคนสามารถเข้าถึงได้


1
ก่อนที่จะทำสิ่งนี้ให้คำนึงถึงผลกระทบด้านความปลอดภัย
e18r

7
ไม่ใช่ทุกระบบเป็นระบบที่ใช้งานจริง บางคนต้องการสิ่งนี้เพื่อการพัฒนา
Conrad Jones

คำตอบ:


272
TO 'user'@'%'

% เป็นสัญลักษณ์แทน - คุณยังสามารถทำ'%.domain.com'หรือ'%.123.123.123'และสิ่งที่ต้องการว่าหากคุณต้องการ


@ Christopolous มีหลายสิ่งที่อาจทำให้เกิด คำสั่งนี้เกี่ยวกับการเข้าถึงระยะไกล (สองเครื่องที่แตกต่างกัน) หากนั่นไม่ใช่สิ่งที่คุณกำลังทำสิ่งนี้ไม่ใช่คำสั่งที่ถูกต้อง คุณยังต้องใช้รหัสผ่านที่ถูกต้องและสิ่งอื่น ๆ
Ariel

11
คุณต้องใช้ "สิทธิ์ล้างข้อมูล"; เพื่อให้การเปลี่ยนแปลงมีผล
Didier Sampaolo

เคล็ดลับเมื่อเชื่อมต่อกับอินสแตนซ์ db ที่ทำงานบนอินสแตนซ์ระบบปฏิบัติการเดียวกัน (เช่นเครื่องพัฒนาของคุณ) คือการส่งผ่าน-h my_machine_nameพารามิเตอร์ เทคนิคนี้ลูกค้าที่จะระบุว่าคุณเป็นมากกว่า'user'@my_machine_name.example.com 'user'@localhostวิธีนี้คุณไม่จำเป็นต้องสร้างและดูแลรักษาบัญชีคู่และทุนสำหรับทั้งlocalhostการเข้าถึงเครือข่าย และแน่นอนต้องแน่ใจว่าmysqldถูกผูกไว้กับ0.0.0.0 127.0.0.1
Charlie Reitzel

173

เปิดใช้งานการเข้าถึงระยะไกล (ให้สิทธิ์) หน้าแรก / บทช่วยสอน / Mysql / เปิดใช้งานการเข้าถึงระยะไกล (ให้สิทธิ์) หากคุณพยายามเชื่อมต่อกับเซิร์ฟเวอร์ mysql ของคุณจากเครื่องระยะไกลและพบข้อผิดพลาดด้านล่างบทความนี้เหมาะสำหรับคุณ

ข้อผิดพลาด 1130 (HY000): โฮสต์ '1.2.3.4' ไม่ได้รับอนุญาตให้เชื่อมต่อกับเซิร์ฟเวอร์ MySQL นี้

เปลี่ยนการกำหนดค่า mysql

เริ่มต้นด้วยการแก้ไขไฟล์ config mysql

vim /etc/mysql/my.cnf

ใส่ความคิดเห็นลงในบรรทัดต่อไปนี้

#bind-address           = 127.0.0.1
#skip-networking

หากคุณไม่พบสายข้ามเครือข่ายให้เพิ่มและแสดงความคิดเห็น

รีสตาร์ทเซิร์ฟเวอร์ mysql

~ /etc/init.d/mysql restart

เปลี่ยนสิทธิ์ GRANT

คุณอาจประหลาดใจที่เห็นการเปลี่ยนแปลงดังกล่าวข้างต้นคุณไม่ได้รับการเข้าถึงระยะไกลหรือการเข้าถึง แต่ไม่สามารถเข้าถึงฐานข้อมูลทั้งหมด

โดยค่าเริ่มต้นชื่อผู้ใช้และรหัสผ่าน mysql ที่คุณใช้จะได้รับอนุญาตให้เข้าถึง mysql-server ในพื้นที่ ดังนั้นจำเป็นต้องอัปเดตสิทธิ์

เรียกใช้คำสั่งด้านล่างเพื่อเข้าถึงจากเครื่องทั้งหมด (แทนที่USERNAMEและPASSWORDด้วยข้อมูลประจำตัวของคุณ)

mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;

เรียกใช้คำสั่งด้านล่างเพื่อให้เข้าถึงได้จาก IP เฉพาะ (แทนที่USERNAMEและPASSWORDด้วยข้อมูลประจำตัวของคุณ)

mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'1.2.3.4' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;

คุณสามารถแทนที่ 1.2.3.4 ด้วย IP ของคุณ คุณสามารถเรียกใช้คำสั่งข้างต้นได้หลายครั้งเพื่อเข้าถึง GRANT จากหลาย IP

นอกจากนี้คุณยังสามารถระบุการแยกUSERNAME& PASSWORDสำหรับการเข้าถึงระยะไกล

คุณสามารถตรวจสอบผลลัพธ์สุดท้ายได้โดย:

SELECT * from information_schema.user_privileges where grantee like "'USERNAME'%";

สุดท้ายคุณอาจต้องเรียกใช้:

mysql> FLUSH PRIVILEGES;

ทดสอบการเชื่อมต่อ

จาก terminal / command-line:

mysql -h HOST -u USERNAME -pPASSWORD

หากคุณได้รับเชลล์ mysql อย่าลืมรันฐานข้อมูลการแสดง; เพื่อตรวจสอบว่าคุณมีสิทธิ์ที่ถูกต้องจากเครื่องระยะไกล

เคล็ดลับโบนัส: เพิกถอนการเข้าถึง

หากคุณให้สิทธิ์การเข้าถึงแก่ผู้ใช้โดยบังเอิญคุณจะต้องมีตัวเลือกการเพิกถอนที่ดีกว่า

การติดตามจะยกเลิกตัวเลือกทั้งหมดสำหรับ USERNAME จากเครื่องทั้งหมด:

mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'USERNAME'@'%';
Following will revoke all options for USERNAME from particular IP:

mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'USERNAME'@'1.2.3.4';
Its better to check information_schema.user_privileges table after running REVOKE command.

หากคุณเห็นว่ามีสิทธิ์ใช้งาน USAGE หลังจากเรียกใช้คำสั่งถอนเพิกถอนได้ มันดีเหมือนไม่มีสิทธิ์เลย ฉันไม่แน่ใจว่าสามารถเพิกถอนได้หรือไม่


7
โปรดทราบว่าผมต้องเปลี่ยน/etc/mysql/mysql.conf.d/mysqld.cnfไฟล์แทนการ/etc/mysql/my.cnfแสดงความคิดเห็นออกมาbind-addressส่วนหนึ่ง #skip-networkingบรรทัดจะหายไปและจะไม่มีผลกระทบของการเพิ่มและการแสดงความคิดเห็นบรรทัด
Pawan

1
บน MariaDB 10.1.26 ไฟล์กำหนดค่าคือ/etc/mysql/mariadb.conf.d/50-server.cnf
Kwadz

ถ้าคุณได้ทำทั้งหมดข้างต้นและยังไม่สามารถเชื่อมต่อการตรวจสอบการตั้งค่าไฟร์วอลล์ของคุณอาจจะมีการปิดกั้นพอร์ต3306หรือแล้วแต่พอร์ตคุณได้ตั้งค่า
AVN

37

สมมติว่าขั้นตอนข้างต้นเสร็จสมบูรณ์และพอร์ต MySql 3306 สามารถเข้าถึงได้จากระยะไกล อย่าลืมผูกที่อยู่ IP สาธารณะในไฟล์กำหนดค่า mysql

ตัวอย่างเช่นบนเซิร์ฟเวอร์อูบุนตูของฉัน:

#nano /etc/mysql/my.cnf

ในไฟล์ค้นหาบล็อกส่วน[mysqld]และเพิ่มที่อยู่ใหม่ที่ผูกไว้ในตัวอย่างนี้คือ 192.168.0.116 มันจะมีลักษณะเช่นนี้

......    
.....    
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.

bind-address        = 127.0.0.1    
bind-address        = 192.168.0.116

.....    
......

คุณสามารถลบการเชื่อมโยง localhost (127.0.0.1) หากคุณเลือก แต่คุณต้องให้ที่อยู่ IP เป็นพิเศษเพื่อเข้าถึงเซิร์ฟเวอร์บนเครื่องท้องถิ่น

ขั้นตอนสุดท้ายคือการรีสตาร์ทเซิร์ฟเวอร์ MySql (บน Ubuntu)

stop mysql

start mysql

หรือ#/etc/init.d/mysql restartสำหรับระบบอื่น ๆ

ตอนนี้ฐานข้อมูล MySQL สามารถเข้าถึงได้จากระยะไกลโดย:

mysql -u username -h 192.168.0.116 -p

/etc/init.d/mysql reloadน่าจะพอเพียง
Lorenz Lo Sauer

ฉันเพิ่งทำสิ่งนี้และไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ mysql ได้จากระยะไกล จากนั้นฉันก็ลองคอมเม้นท์ bind-addresses และใช้งานได้ ฉันยังพยายามเข้าสู่เซิร์ฟเวอร์ด้วย mysql -u <user> -p โดยไม่ต้องระบุโฮสต์และทำงานได้ดังนั้นจึงปรากฏว่า "คุณสามารถลบ th localhost (127.0.0.1) การเชื่อมโยงถ้าคุณเลือก แต่แล้วคุณต้องเจาะจง ให้ที่อยู่ IP เพื่อเข้าถึงเซิร์ฟเวอร์บนเครื่องท้องถิ่น " ไม่ถูกต้อง. (อูบุนตูเซิร์ฟเวอร์ 12.04 LTS mysql Ver 14.14 Distrib 5.5.34)
โปรแกรมเตอร์

5
bind-addressสั่งกำหนดที่อยู่ IP ที่ MySQL เซิร์ฟเวอร์ฟังบน; ไม่ใช่ที่อยู่ IP ที่เซิร์ฟเวอร์ยอมรับการเชื่อมต่อ
GoZoner

1
หลังจากทำตามทุกขั้นตอนแล้วมันไม่ทำงาน ฉันได้รับข้อผิดพลาดเมื่อแสดงความคิดเห็นbind-addressทั้ง localhost หรือที่อยู่ remotehost mysql.serviceJob for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
baermathias

เป็นไปได้หรือไม่ที่จะให้ที่อยู่เช่น abc.abc:1234 แทน 192.168.0.116?
2560

26

สำหรับทุกคนที่คลำตามนี้นี่คือวิธีที่ฉันได้รับสิทธิพิเศษหวังว่ามันจะช่วยใครบางคน

GRANT ALL ON yourdatabasename.* TO root@'%' IDENTIFIED BY
'yourRootPassword';

ดังที่ระบุไว้%คือไวด์การ์ดและจะอนุญาตให้ที่อยู่ IP ใด ๆ เชื่อมต่อกับฐานข้อมูลของคุณ สมมติฐานที่ฉันทำที่นี่คือเมื่อคุณเชื่อมต่อคุณจะมีชื่อผู้ใช้root(ซึ่งเป็นค่าเริ่มต้น) ป้อนรหัสผ่านรูทและคุณก็พร้อมใช้งาน โปรดทราบว่าฉันไม่มีเครื่องหมายอัญประกาศเดี่ยว ( ') รอบรากผู้ใช้


ทำไมการลบเครื่องหมายคำพูดเดี่ยวออกจากผู้ใช้จึงสำคัญ ทำไมสิ่งนี้จึงแตกต่างจากคำตอบอื่น ๆ (และคู่มือ)
DMCoding

26

จำเป็นต้องเปลี่ยนไฟล์กำหนดค่าเพื่อเปิดใช้งานการเชื่อมต่อผ่าน localhost

เพื่อเชื่อมต่อผ่าน IP ระยะไกลเข้าสู่ระบบในฐานะผู้ใช้ "root" และเรียกใช้แบบสอบถามด้านล่างใน mysql

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;

CREATE USER 'username'@'%' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;

FLUSH PRIVILEGES;

สิ่งนี้จะสร้างผู้ใช้ใหม่ที่สามารถเข้าถึงได้บนโลคัลโฮสต์และจาก IP ระยะไกล

แสดงความคิดเห็นบรรทัดด้านล่างจากไฟล์ my.cnf ของคุณซึ่งอยู่ใน /etc/mysql/my.cnf

bind-address = 127.0.0.1

รีสตาร์ท mysql ของคุณโดยใช้

sudo service mysql restart

ตอนนี้คุณน่าจะสามารถเชื่อมต่อกับ mysql ของคุณได้จากระยะไกล


2
สิ่งนี้ไม่ตอบคำถาม
Charris

1
@ChristopheHarris ทำไมคุณถึงรู้สึกเช่นนั้น? คำตอบที่ชัดเจนให้คำแนะนำทีละขั้นตอนเกี่ยวกับวิธีการสร้างผู้ใช้ใหม่ใน MySQL ที่ช่วยให้ทั้งโฮสต์ในพื้นที่และการเข้าถึงฐานข้อมูลระยะไกลโดยใช้ผู้ใช้นั้น คุณช่วยอธิบายได้ไหม?
harishannam

1
ไม่ได้ผลสำหรับฉัน ยังคงมีข้อผิดพลาดเดียวกัน ไม่ว่าฉันจะลองด้วยรูทหรือผู้ใช้ใหม่: ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ MySQL ใน 'xxx.xxx.xxx.xxx' ([Errno 61] การเชื่อมต่อถูกปฏิเสธ)
baermathias

21

ใช้คำสั่งนี้:

GRANT ALL ON yourdatabasename.* TO root@'%' IDENTIFIED BY 'yourRootPassword';

แล้ว:

FLUSH PRIVILEGES; 

จากนั้นคอมเม้นท์บรรทัดด้านล่างในไฟล์ "/etc/mysql/mysql.conf.d/mysqld.cnf" (จำเป็น!):

bind-address = 127.0.0.1 

ใช้งานได้สำหรับฉัน!


ดีมากหนึ่งเดียว สำคัญที่ให้ความช่วยเหลือ หากไม่มีข้อผิดพลาดจำนวนมากสำหรับคำขอเช่นyour-password-does-not-satisfy-the-current-policy-requirements
Alejandro Teixeira Muñoz

21

เพื่อให้สามารถเชื่อมต่อกับผู้ใช้ของคุณจากที่อยู่ IP ใด ๆ ให้ทำดังต่อไปนี้:

อนุญาตให้เซิร์ฟเวอร์ mysql ยอมรับการเชื่อมต่อระยะไกล สำหรับไฟล์ mysqld.conf ที่เปิดอยู่นี้:

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

ค้นหาบรรทัดที่ขึ้นต้นด้วย "bind-address" และตั้งค่าเป็น 0.0.0.0

bind-address                    = 0.0.0.0

และในที่สุดก็บันทึกไฟล์

หมายเหตุ: หากคุณใช้งาน MySQL 8+ bind-addressคำสั่งจะไม่อยู่ในmysqld.cnfไฟล์ตามค่าเริ่มต้น /etc/mysql/mysql.conf.d/mysqld.cnfในกรณีนี้ให้เพิ่มคำสั่งไปที่ด้านล่างของแฟ้ม

ตอนนี้รีสตาร์ทเซิร์ฟเวอร์ mysql ไม่ว่าจะด้วยsystemdหรือใช้serviceคำสั่งที่เก่ากว่า ขึ้นอยู่กับระบบปฏิบัติการของคุณ:

sudo systemctl restart mysql # for ubuntu    
sudo systemctl restart mysqld.service # for debian

ในที่สุดเซิร์ฟเวอร์ mysql ก็สามารถยอมรับการเชื่อมต่อระยะไกลได้

ตอนนี้เราต้องสร้างผู้ใช้และอนุญาตให้ดังนั้นเราจึงสามารถเข้าสู่ระบบด้วยผู้ใช้นี้จากระยะไกล

เชื่อมต่อกับฐานข้อมูล MySQL ในฐานะรูทหรือผู้ใช้รายอื่นที่มีสิทธิ์ใช้งานรูท

mysql -u root -p

ตอนนี้สร้างผู้ใช้ที่ต้องการทั้งในพื้นที่และสัญลักษณ์แทน '%' และให้สิทธิ์กับฐานข้อมูลทั้งหมด

CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';

จากนั้น

GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';

และสุดท้ายอย่าลืมที่จะล้างสิทธิพิเศษ

FLUSH PRIVILEGES;

หมายเหตุ: หากคุณได้กำหนดค่าไฟร์วอลล์บนเซิร์ฟเวอร์ฐานข้อมูลของคุณคุณจะต้องเปิดพอร์ต3306เริ่มต้นของพอร์ตMySQL เพื่ออนุญาตการรับส่งข้อมูลไปยัง MySQL

หวังว่านี่จะช่วยได้;)


2
sudo systemctl รีสตาร์ท mysqld.service สำหรับเดเบียนฉันต้องใช้ sudo systemctl รีสตาร์ท mysql.service สำหรับอูบุนตู
ani0904071

ฉันอัปเดตคำตอบและเพิ่มคำสั่งรีสตาร์ท mysql สำหรับทั้ง distro Thanks @ ani0904071
Imtiaz Shakil Siddique

17

รันสิ่งต่อไปนี้:

$ mysql -u root -p      
mysql> GRANT ALL ON *.* to root@'ipaddress' IDENTIFIED BY 'mysql root password';     
mysql> FLUSH PRIVILEGES;     
mysql> exit

จากนั้นลองเชื่อมต่อจากที่อยู่ IP ที่คุณระบุ:

mysql -h address-of-remove-server -u root -p   

คุณควรจะสามารถเชื่อมต่อ


15

คุณสามารถ slove ปัญหาของ MariaDB ผ่านคำสั่งนี้ :

บันทึก:

GRANT ALL ON *.* to root@'%' IDENTIFIED BY 'mysql root password';

%เป็นสัญลักษณ์แทน ในกรณีนี้มันหมายถึงที่อยู่ IP ทั้งหมด


3
ใน mysql สิ่งที่คุณต้องทำคือ (1) เปลี่ยนเนื้อหา my.cnf (2) .grant ผู้ใช้ระยะไกล (3) จัดการกับไฟร์วอลล์ของคุณเพื่อฟังพอร์ต 3306
未来陆家嘴顶尖的投资人

คุณบันทึกวันของฉัน ขอบคุณมัน!
Almett


7

ในการเข้าถึงฐานข้อมูลเซิร์ฟเวอร์ Mysql จากระยะไกล 8:

CREATE USER 'root'@'%' IDENTIFIED BY 'Pswword@123';

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

FLUSH PRIVILEGES;

5
  • เริ่ม MYSQL โดยใช้ผู้ดูแลระบบ
    • mysql -u ผู้ดูแลระบบผู้ใช้ -p (ป้อนรหัสผ่านบนหน้าจอ)
  • สร้างผู้ใช้ใหม่:
    • สร้าง 'ผู้ใช้ใหม่' @ '%' ที่ระบุโดย 'รหัสผ่าน'; (% -> anyhost)
  • ให้สิทธิ์:
    • GRANT SELECT, DELETE, INSERT, UPDATE บน db_name. * เป็น 'newuser' @ '%';
    • สิทธิในการชำระล้าง

หากคุณใช้งานอินสแตนซ์ EC2 อย่าลืมเพิ่มกฎขาเข้าในกลุ่มความปลอดภัยด้วย MYSQL / Aurura


5

แก้ไขไฟล์:

/etc/mysql/percona-server.cnf

ผนวกรหัสด้านล่างในไฟล์

[mysqld] bind-address = 0.0.0.0

สร้างผู้ใช้สำหรับการเข้าถึงระยะไกล

$ mysql -u root -p      
mysql> GRANT ALL ON *.* to snippetbucketdotcom@'%' IDENTIFIED BY 'tejastank';   
mysql> FLUSH PRIVILEGES;    
mysql> exit

เซิร์ฟเวอร์ linux ทั้งหมดใช้งานได้

สำหรับ MSWin c: \ Find พา ธ ตำแหน่งไฟล์ \ insatallation


[mysqld] จำเป็นต้องเพิ่มไฟล์ไม่สามารถทำงานได้อย่างถูกต้อง
Tejas Tank

3

เพียงแค่สร้างผู้ใช้ไปยังฐานข้อมูลบางอย่างเช่น

GRANT ALL PRIVILEGES ON <database_name>.* TO '<username>'@'%' IDENTIFIED BY '<password>'

จากนั้นไปที่

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnfและเปลี่ยนบรรทัดbind-address = 127.0.0.1เป็นbind-address = 0.0.0.0

หลังจากนั้นคุณสามารถเชื่อมต่อกับฐานข้อมูลนั้นจาก IP ใด ๆ


3

เปิดmysql consoleและดำเนินการคำสั่งต่อไปนี้ (ป้อนชื่อฐานข้อมูลชื่อผู้ใช้และรหัสผ่าน):

ให้สิทธิ์ทั้งหมดบนชื่อฐานข้อมูลของคุณ * ถึงผู้ดูแลระบบ @ '%' ที่ระบุโดย 'yourRootPassword';

จากนั้นดำเนินการ:

สิทธิในการชำระล้าง

เปิดบรรทัดคำสั่งและเปิดไฟล์/etc/mysql/mysql.conf.d/mysqld.cnfโดยใช้เครื่องมือแก้ไขใด ๆroot privilegesกับ

ตัวอย่างเช่น:

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

จากนั้นแสดงความคิดเห็นในบรรทัดด้านล่าง:

bind-address = 127.0.0.1

รีสตาร์ท mysql เพื่อสะท้อนการเปลี่ยนแปลงโดยใช้คำสั่ง:

sudo service mysql restart

สนุก ;)


2

คุณต้องเปลี่ยนไฟล์กำหนดค่า mysql:

เริ่มต้นด้วยการแก้ไขไฟล์ config mysql

vim /etc/mysql/my.cnf

เพิ่ม:

bind-address = 0.0.0.0

0

ในแผงควบคุมเว็บไซต์เช่น cPanel คุณสามารถเพิ่มหนึ่ง%(เครื่องหมายเปอร์เซ็นต์) ในชื่อโฮสต์ที่ได้รับอนุญาตให้เข้าถึงฐานข้อมูล MySQL ของคุณ

ด้วยการเพิ่มรายการเดียว%คุณสามารถเข้าถึงฐานข้อมูลของคุณจาก IP หรือเว็บไซต์ใด ๆ ได้จากแอปพลิเคชันบนเดสก์ท็อป


โปรดอย่าอ้างอิงถึงสิ่งใด ๆ เช่น cPanel เมื่อมีการเสนอข้อความค้นหาแบบตรงนี่จะไม่แสดงผลการทำงานสำหรับคนอื่น
Tobias Hagenbeek

@TobiasHagenbeek ขอบคุณสำหรับความคิดเห็นของคุณ ฉันไม่ได้คิดค้นวิธีการ / เคล็ดลับนี้ (เป็นเรื่องปกติทางอินเทอร์เน็ต) แต่ฉันเป็นหนึ่งในผู้ทดสอบของวิธีนี้และฉันพบว่ามันเป็นวิธีที่ง่ายที่สุดและทำงานได้นั่นคือสาเหตุที่ฉันโพสต์ไว้ที่นี่ ฉันรู้ว่ามีความเสี่ยงด้านความปลอดภัยในวิธีนี้ซึ่งสามารถละเลยได้
มูฮัมหมัด Saqib

0

เช่นใน CentOS ของฉัน

sudo gedit /etc/mysql/my.cnf

ใส่เครื่องหมายบรรทัดต่อไปนี้

# bind-address = 127.0.0.1

แล้วก็

sudo service mysqld ทำการรีสตาร์ท


0

หากคุณต้องการให้สิทธิ์การเข้าถึงฐานข้อมูลระยะไกลจากที่อยู่ IP ใด ๆ ให้เรียกใช้คำสั่ง mysql และหลังจากนั้นให้เรียกใช้คำสั่งต่อไปนี้

GRANT ALL PRIVILEGES ON *.*
TO 'root'@'%' 
IDENTIFIED BY 'password' 
WITH GRANT OPTION;

0

สิ่งที่ใช้ได้กับ Ubuntu คือการให้สิทธิ์ทั้งหมดแก่ผู้ใช้:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;

และการตั้งค่าที่อยู่ผูกใน/etc/mysql/mysql.conf.d/mysqld.cnf:

bind-address            = 0.0.0.0

จากนั้นรีสตาร์ท mysql daemon:

service mysql restart

-7

คุณสามารถปิดการใช้งานความปลอดภัยทั้งหมดโดยแก้ไข /etc/my.cnf:

skip-grant-tables

สิ่งนี้จะลบข้อกำหนดรหัสผ่านทั้งหมด
kristopolous

5
โปรดทราบว่าไม่แนะนำให้เปิดใช้ตัวเลือกนี้ในสภาพแวดล้อมการใช้งานจริงเนื่องจากผู้ใช้สามารถเชื่อมต่อได้โดยไม่ต้องใช้รหัสผ่าน!
AStopher

อย่างไรก็ตามนี่เหมาะสำหรับสภาพแวดล้อมการพัฒนา
DMCoding

สิ่งนี้ทำให้คนอื่นแฮ็คฐานข้อมูลของคุณโดยไม่ต้องใช้รหัสผ่าน
MilkyWay90

@DanielJames แม้สำหรับสภาพแวดล้อมการพัฒนามันเป็นความคิดที่น่ากลัว
Dragas
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.