وربطها - ماهي قاعدة البيانات mysql




منح الوصول عن بعد من قاعدة بيانات MySQL من أي عنوان IP (10)

تعديل ملف:

/etc/mysql/percona-server.cnf

إلحاق تحت الرمز في الملف.

[mysqld] bind-address = 0.0.0.0

إنشاء مستخدم للوصول البعيد.

$ mysql -u root -p      
mysql> GRANT ALL ON *.* to [email protected]'%' IDENTIFIED BY 'tejastank';   
mysql> FLUSH PRIVILEGES;    
mysql> exit

كل خادم linux يعمل ،

للحصول على msWin c: \ البحث عن مسار الموقع \ مسار البيانات

أنا على علم بهذا الأمر:

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

ولكن بعد ذلك يسمح لي فقط بمنح عنوان IP خاص للوصول إلى قاعدة بيانات MySQL هذه. ماذا لو كنت أريد ذلك حتى يتمكن أي مضيف بعيد من الوصول إلى قاعدة بيانات MySQL هذه؟ كيف يمكنني فعل ذلك؟ في الأساس أقوم بإعداد قاعدة البيانات هذه بحيث يمكن للجميع الوصول إليها.


استخدم هذا الأمر:

GRANT ALL ON yourdatabasename.* TO [email protected]'%' IDENTIFIED BY 'yourRootPassword';

ثم:

FLUSH PRIVILEGES; 

ثم قم بتعليق السطر أدناه في الملف "/etc/mysql/mysql.conf.d/mysqld.cnf" (مطلوب!):

bind-address = 127.0.0.1 

تناسبني! :-)


تحتاج إلى تغيير ملف التكوين mysql:

البدء في تحرير ملف التكوين mysql

vim /etc/mysql/my.cnf

إضافة:

bind-address = 0.0.0.0

تغييرات ملف التكوين مطلوبة لتمكين الاتصالات عبر المضيف المحلي.

للاتصال عبر عناوين IP عن بعد ، قم بتسجيل الدخول كمستخدم "الجذر" وقم بتشغيل الاستعلامات أدناه في 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;

سيؤدي ذلك إلى إنشاء مستخدم جديد يمكن الوصول إليه على localhost وكذلك من عناوين IP بعيدة.

قم أيضًا بالتعليق على السطر أدناه من ملف my.cnf الموجود في /etc/mysql/my.cnf

bind-address = 127.0.0.1

قم بإعادة تشغيل mysql الخاص بك باستخدام

sudo service mysql restart

الآن يجب أن تكون قادراً على الاتصال عن بعد إلى mysql الخاص بك.


على سبيل المثال في بلدي CentOS

sudo gedit /etc/mysql/my.cnf

علّق على الأسطر التالية

# عنوان ربط = 127.0.0.1

ثم

خدمة sudo إعادة تشغيل الخلية


في لوحات موقع الويب مثل cPanel ، يمكنك إضافة % واحدة (علامة النسبة المئوية) في أسماء المضيف المسموح لها بالوصول إلى قاعدة بيانات MySQL.

من خلال إضافة % واحد ، يمكنك الوصول إلى قاعدة البيانات الخاصة بك من أي IP أو موقع ويب حتى من تطبيقات سطح المكتب.


لمن تخبطت في هذا ، وهنا كيف حصلت على منح الامتيازات ، ونأمل أن يساعد شخص ما

GRANT ALL ON yourdatabasename.* TO [email protected]'%' IDENTIFIED BY
'yourRootPassword';

كما هو مذكور % هو حرف بدل وسيتيح ذلك أي عنوان IP للاتصال بقاعدة البيانات الخاصة بك. الفرضية التي أقوم بها هنا هي عندما تقوم بالاتصال سيكون لديك مستخدم يدعى root (وهو الافتراضي بالرغم من ذلك). تغذية في كلمة مرور الجذر وأنت على ما يرام. لاحظ أنه ليس لدي علامات اقتباس مفردة ( ' ) حول جذر المستخدم.


يمكنك تعطيل كل الأمان من خلال تحرير /etc/my.cnf:

skip-grant-tables

GRANT ALL PRIVILEGES ON *.* TO 'user'@'ipadress'

TO 'user'@'%'

٪ عبارة عن حرف بدل - يمكنك أيضًا إجراء '%.domain.com' أو '%.123.123.123' وأشياء من هذا القبيل إذا احتجت.





grant