修改了mysql的数据文件目录为/home/mysql,安装时默认的数据文件目录为/var/lib/mysql,配置文件为/etc/my.cnf,更改/etc/init.d/mysql文件中的datadir=/home/mysql 。 我们要知道/etc/my.cnf配置文件中包含对mysql服务端和客户端的配置。 然后进行如下操作
修改了mysql的数据文件目录为/home/mysql,安装时默认的数据文件目录为/var/lib/mysql,配置文件为/etc/my.cnf,更改/etc/init.d/mysql文件中的datadir=/home/mysql 。
我们要知道/etc/my.cnf配置文件中包含对mysql服务端和客户端的配置。
然后进行如下操作,改名my.cnf为my.cnf-bak,更改/etc/init.d/mysql文件中的datadir为默认路径datadir=,然后启动mysql服务端/usr/bin/mysqld_safe --defaults-extra-file=/etc/my.cnf-bak,成功启动mysql服务端,查看mysqld、mysql进程信息ps -ef| grep -i mysql*,显示mysql的datadir为/home/mysql,sock为/home/mysql/mysql.sock,其他信息也显示正常,然后尝试登录mysql数据库,这时报错提示说/var/lib/mysql/mysql.sock不存在。为什么呢?是因为my.cnf配置文件不存在,mysql客户端没有找到配置文件,就会去读取安装mysql时rpm包编译时指定的默认路径,而/var/lib/mysql/mysql.sock不存在,所以报错。就是说这时mysql客户端从默认参数中读取的信息 与修改后的datadir=/home/mysql的信息不一致,所以无法登录mysql服务器
1)/etc/init.d/mysql里面的datadir=/home/mysql,在mysql启动文件里面设置了数据文件目录
2)查看/etc/、basedir、datadir、~./my.cnf下面是否存在my.cnf配置文件3)更改/etc/my.cnf为/etc/my.cnf-bak,mysql启动时会读取编译时设置的默认参数
4)此时可以正常启动mysql服务,因为在/etc/init.d/mysql中显示指定了数据文件的目录(似乎与第三条有点矛盾?其实3指的默认参数就是这里)
# service mysql start
# mysqladmin -uroot -p variables |grep -i basedir
# mysqladmin -uroot -p variables |grep -i datadir
5)现在修改/etc/init.d/mysql文件中的datadir,注释掉显示指定的datadir=/home/mysql
6)尝试关闭mysql数据库
#service mysql stop
#MySQL server PID file could not be found! [FAILED]
这是因为修改了mysql的datadir=/home/mysql,这时mysql会根据mysql的rpm包里面编译的默认路径/var/lib/mysql文件夹来读取PID文件,而/var/lib/mysql下面没有PID文件,所以提示。
7)此时可以通过mysqladmin -uroot -p shutdown 来正常关闭mysql进程。
8)因为/etc/my.cnf、basedir、datadir、~/.my.cnf都不存在,无法启动mysql。
可以通过/usr/bin/mysqld_safe --help查看mysqld_safe的参数,然后使用
# /usr/bin/mysqld_safe --defaults-extra-file=/etc/my.cnf-bak
指定mysql启动脚本,并启动mysqld进程。 这时mysqld_safe进程会占用终端(在当前终端,无法进行其他操作),使用Ctrl+Z停止mysqld进程(睡眠进程),再使用bg(fg将后台作业放到前台)把mysqld_safe进程设置为后台进程(会从睡眠状态恢复为运行状态,使用)。
###########
9)尝试连接mysql数据库,查看mysql的信息
# mysqladmin -uroot -p variables | grep -i datadir
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socke'/var/lib/mysql/mysql.sock' (2)'
Check that mysqld is running and that the socket: '/var/lib/mysql/mysql.sock' exists!
提示无法通过/var/lib/mysql/mysql.sock连接mysql服务器
尝试连接mysql数据库,
#mysql -uroot -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
###########
查看mysql进程信息:
[root@localhost ~]# ps -ef|grep -i mysql*
root 18835 5614 0 04:10 pts/1 00:00:00 /bin/sh /usr/bin/mysqld_safe --defaults-extra-file=/etc/my.cnf-bak
mysql 19133 18835 0 04:10 pts/1 00:00:00 /usr/sbin/mysqld --defaults-extra-file=/etc/my.cnf-bak --basedir=/usr --datadir=/home/mysql --plugin-dir=/usr/lib/mysql/plugin --user=mysql --log-error=/home/mysql/localhost.localdomain.err --pid-file=/home/mysql/localhost.localdomain.pid --socket=/home/mysql/mysql.sock --port=3306
这时会发现,mysql的进程信息显示的socket路径为修改过的my.cnf-bak中指定的路径/home/mysql/mysql.sock,而连接mysql数据库时,却说无法通过默认的socket路径连接/var/lib/mysql/mysql.sock连接。
############
这是由于/etc/my.cnf、basedir/my.cnf、datadir/my.cnf、~/.my.cnf文件都不存在,而在启动mysql服务的时候,使用/usr/bin/mysqld_safe --defaults-extra-file=/etc/my.cnf-bad 指定了启动时mysql_server读取的配置文件,这样mysql服务器进程成功启动,而在mysql_client客户端使用mysqladmin客户端工具、或mysql通过客户端尝试登陆mysql服务器 时,mysql客户端会去寻找my.cnf配置文件(my.cnf中包含了mysql服务端[mysqld]和客户端[client]的设置),因为没有找到my.cnf配置文件,无法读取用户的设置,mysql客户端会使用mysql安装时设置的默认目录,而默认数据文件目录/var/lib/mysql下没有mysql.sock,所以会报错说找不到/var/lib/mysql/mysql.sock。
my.cnf中的配置信息分类:
mysqld_safe / mysqld / mysqld_multi 属于服务器端配置
mysqldump / mysql / client / mysqladmin之类的属于客户端配置
[client]用户告诉客户端工具mysql连接数据库服务器使用的port和socket文件的路径
[mysql]用于设置客户端工具的显示信息,如在my.cnf中设置
[mysql]
#prompt="(\\u:hostname:\D)[\\d]> "
这样使用mysql -uroot -p连接到mysql服务器时,就会显示:
(root:hostname:Thu Feb 9 16:32:26 2012)[(none)]>

TograntpermissionstonewMySQLusers,followthesesteps:1)AccessMySQLasauserwithsufficientprivileges,2)CreateanewuserwiththeCREATEUSERcommand,3)UsetheGRANTcommandtospecifypermissionslikeSELECT,INSERT,UPDATE,orALLPRIVILEGESonspecificdatabasesortables,and4)

toadduserInmysqleffect和securly,跟隨台詞:1)USEtheCreateUserStattoDaneWuser,指定thehostandastrongpassword.2)GrantNecterAryAryaryPrivilegesSustherthing privilegesgeStatement,usifementStatement,adheringtotheprinciplelastprefilegege.3)

toaddanewuserwithcomplexpermissionsinmysql,loldtheSesteps:1)創建eTheEserWithCreateuser'newuser'newuser'@''localhost'Indedify'pa ssword';。 2)GrantreadAccesstoalltablesin'mydatabase'withGrantSelectOnMyDatabase.to'newuser'@'localhost';。 3)GrantWriteAccessto'

MySQL中的字符串數據類型包括CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT,排序規則(Collations)決定了字符串的比較和排序方式。 1.CHAR適合固定長度字符串,VARCHAR適合可變長度字符串。 2.BINARY和VARBINARY用於二進制數據,BLOB和TEXT用於大對像數據。 3.排序規則如utf8mb4_unicode_ci忽略大小寫,適合用戶名;utf8mb4_bin區分大小寫,適合需要精確比較的字段。

最佳的MySQLVARCHAR列長度選擇應基於數據分析、考慮未來增長、評估性能影響及字符集需求。 1)分析數據以確定典型長度;2)預留未來擴展空間;3)注意大長度對性能的影響;4)考慮字符集對存儲的影響。通過這些步驟,可以優化數據庫的效率和擴展性。

mysqlblobshavelimits:tinyblob(255bytes),blob(65,535 bytes),中間佈洛布(16,777,215個比例),andlongblob(4,294,967,967,295 bytes).tousebl觀察:1)考慮pperformance impactsandSandStorLageBlobSextern; 2)管理backbackupsandreplication carecration; 3)usepathsinst

自動化在MySQL中創建用戶的最佳工具和技術包括:1.MySQLWorkbench,適用於小型到中型環境,易於使用但資源消耗大;2.Ansible,適用於多服務器環境,簡單但學習曲線陡峭;3.自定義Python腳本,靈活但需確保腳本安全性;4.Puppet和Chef,適用於大規模環境,複雜但可擴展。選擇時需考慮規模、學習曲線和集成需求。

是的,YouCansearchInIdeAblobInMysqlusingsPecificteChniques.1)轉換theblobtoautf-8StringWithConvertFunctionWithConvertFunctionandSearchUsiseLike.2)forCompresseBlysBlobs,useuncompresseblobs,useuncompressbeforeconversion.3)expperformance impperformance imptactSandDataEcoding.4)


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

禪工作室 13.0.1
強大的PHP整合開發環境

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!