MySQL数据库配置技巧_MySQL
用root用户启动远程服务一直是安全大忌,因为如果服务程序出现问题,远程攻击者极有可能获得主机的完全控制权。MySQL从3.23.15版 L\PyCu
本开始时作了小小的改动,默认安装后服务要用mysql用户来启动,不允许root用户启动。如果非要用root用户来启动,必须加上--user=root R( XqQ=:J
QW& mIv
的参数(./safe_mysqld --user=root &)。因为MySQL中有LOAD DATA INFILE和SELECT ... INTO OUTFILE的SQL语句,如果是root用户启动了 P=SXPj@s
Ef+C}:%'Do
MySQL服务器,那么,数据库用户就拥有了root用户的写权限。不过MySQL还是做了一些限制的,比如LOAD DATA INFILE只能读全局可读的文件 5-:{o3j
rk],[X/9)
,SELECT ... INTO OUTFILE不能覆盖已经存在的文件。 f-uWWkG6I
2='E*e'6
本地的日志文件也不能忽视,包括shell的日志和MySQL自己的日志。有些用户在本地登陆或备份数据库的时候为了图方便,有时会在命令行参 !ua7['
k* P]TkFv
数里直接带了数据库的密码,如: |yI9>&NQ
5Jj5!
shell>/usr/local/mysql/bin/mysqldump -uroot -ptest test>test.sql K]KW53w;"
shell>/usr/local/mysql/bin/mysql -uroot -ptest 6,kZY}RL3
>3.+9a
这些命令会被shell记录在历史文件里,比如bash会写入用户目录的.bash_history文件,如果这些文件不慎被读,那么数据库的密码就会泄漏 *ffk[WU
98gsNi0ta
。用户登陆数据库后执行的SQL命令也会被MySQL记录在用户目录的.mysql_history文件里。如果数据库用户用SQL语句修改了数据库密码,也会 Llz,At_C
qQvs~tBvX
因.mysql_history文件而泄漏。所以我们在shell登陆及备份的时候不要在-p后直接加密码,而是在提示后再输入数据库密码。 VGJwF Us
另外这两个文件我们也应该不让它记录我们的操作,以防万一。 C|l\ '
9E%jjITvt`
shell>rm .bash_history .mysql_history %C"Oo
shell>ln -s /dev/null .bash_history c2KWTaE^
shell>ln -s /dev/null .mysql_history kj@R?Jym
4`Kl+
上门这两条命令把这两个文件链接到/dev/null,那么我们的操作就不会被记录到这两个文件里了。 74cRAq
编程需要注意的一些问题 s9P#jm&
JNZA6M
不管是用哪种程序语言写连接MySQL数据库的程序,有一条准则是永远不要相信用户提交的数据! 9Q/NA/
对于数字字段,我们要使用查询语句:SELECT * FROM table WHERE ID='234',不要使用SELECT * FROM table WHERE ID=234这样的查询语句 QE8QV?JX
c`F#,iu7
。MySQL会自动把字串转换为数字字符并且去除非数字字符。如果用户提交的数据经过了mysql_escape_string处理,这样我们就可以完全杜绝 aJD*T4,

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

MySQL 8.4 (2024 年時点の最新の LTS リリース) で導入された主な変更の 1 つは、「MySQL Native Password」プラグインがデフォルトで有効ではなくなったことです。さらに、MySQL 9.0 ではこのプラグインが完全に削除されています。 この変更は PHP および他のアプリに影響します

PHPがMySQLに接続した後、ページは空白になり、DIE()関数が失敗する理由。 PHPとMySQLデータベースの間の接続を学習するとき、あなたはしばしばいくつかの混乱することに遭遇します...

多くのウェブサイト開発者は、ランプアーキテクチャの下でnode.jsまたはPythonサービスを統合する問題に直面しています:既存のランプ(Linux Apache MySQL PHP)アーキテクチャWebサイトのニーズ...

PCとモバイル側で同じページを共有し、キャッシュの問題を処理する方法は? Nginxでは、Baotaの背景を使用して構築されたPHP MySQL環境、PCサイドの作成方法と...

この記事のPHPの楽観的ロックおよびトランザクションと組み合わせて残高を控除する問題の詳細な説明では、PHP、楽観的ロック、データベーストランザクションのみを使用したバランス控除を詳細に分析します...

Redis データベースを効果的に監視することは、最適なパフォーマンスを維持し、潜在的なボトルネックを特定し、システム全体の信頼性を確保するために不可欠です。 Redis Exporter Service は、Prometheus を使用して Redis データベースを監視するように設計された堅牢なユーティリティです。 このチュートリアルでは、Redis Exporter Service の完全なセットアップと構成について説明し、監視ソリューションをシームレスに確立できるようにします。このチュートリアルに従うことで、Redis データベースのパフォーマンス メトリクスを効果的に監視するための完全に運用可能な監視セットアップを実現できます。

通貨契約:リスクが高く、利益の確率を高める方法を備えた両刃の剣?通貨サークルの多くの退役軍人は、契約取引の大きな可能性に惹かれてきました。これは、寛大なリターンをもたらすだけでなく、大きな損失につながることができます。契約取引は本質的にデジタル通貨の派生物であり、そのリスクが高いと高いリターンが多くの注目を集めています。それでは、通貨サークル契約取引の利益の確率を高める方法は?これには、いくつかの重要なスキルが必要です。この記事では、リスクを減らし、収益性を向上させる方法を詳細に説明します。通貨サークルの契約利益戦略:不安定な暗号通貨市場では、契約取引で安定した利益を達成したい場合は、包括的な戦略を策定し、それを厳密に実装する必要があります。潜在的な損失を制御し、単一の取引を避けるために、停止損失価格を事前に設定します
