MySQL数据库成功登录方法
admin
2023-05-16 17:22:37
0

文主要给大家介绍MySQL数据库成功登录方法,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下MySQL数据库成功登录方法吧。

在数据库变更, 维护等工作中要多次进行登录,这里以数据库管理用户root@localhost进行说明, 一般会有下面的命令行:

mysql@db01: ~$ mysql --host=localhost --password --port=3306 --socket=/home/3306/mysql.sock--user=root

Enter password: 

若每次都敲入或粘贴这一长串命令, 然后再输入密码, 感觉真是不够方便快捷.

MySQL 5.0, 5.5等较早版本中, 可进行如下操作, 为了便于说明, 下面以mysql用户(root)登录数据库所在的Linux操作系统.

mysql用户家目录下建立隐藏文件.my.cnf,注意权限要设置为600, 里面写入上面命行中的各参数,由于其和登录相关, 暂且称为登录文件, 查看如下:

mysql@db01: ~$ ls -al .my.cnf

-rw-------. 1 mysql mysql 99Aug 17 21:31 .my.cnf

mysql@db01: ~$ cat .my.cnf

[client]

host = localhost

password = 123456

port = 3306

socket = /home/3306/mysql.sock

user = root 

然后直接在命令行敲入mysql(MySQL命令行工具), 回车就可登录数据库了. 

MySQL 5.6(5.6.6)及之后版本, 有了命令mysql_config_editor,能比较优美的完成上面需求.

使用mysql_config_editor建立登录文件, 如下命令行上--login-path=mytest中的mytest, 称为登录路径(loginpath).

mysql@db01: ~$mysql_config_editor set --host=localhost --login-path=mytest --password--user=root --socket=/home/3306/mysql.sock --port=3306

Enter password:    <- 此处输入密码123456,回车即可

这时也会在用户家目录下生成一个隐藏文件, 名称是.mylogin.cnf,观察该登陆文件的特点: 是被加密的, 显示其内容时, 密码也被星号替换了.

mysql@db01: ~$ ls -al.mylogin.cnf

-rw-------. 1 mysql mysql 192Aug 17 21:39 .mylogin.cnf

mysql@db01: ~$ file.mylogin.cnf

.mylogin.cnf: data

mysql@db01: ~$mysql_config_editor print --all

[mytest]

user = root

password = *****

host = localhost

socket = /home/3306/mysql.sock

port = 3306 

然后按如下命令行测试, 即可登入数据库.

mysql@db01: ~$ mysql--login-path=mytest 

若想在登录文件中添加第二个登录路径, 怎么做呢只需要调整上面mysql_config_editor命令行中相应参数值即可, 然后查看登录文件:

mysql@db01: ~$mysql_config_editor print --all

[mytest]

user = root

password = *****

host = localhost

socket = /home/3306/mysql.sock

port = 3306

[myremote]

user = root

password = *****

host = 192.168.138.134

port = 3306 

又若想修改登录路径myremote的密码, password的值, 又怎么做呢

a. 删除登录路径myremote

mysql@db01: ~$mysql_config_editor remove --login-path=myremote

b. 查看登录文件, 确认其已删除, 只剩下mytest

mysql@db01: ~$mysql_config_editor print --all

[mytest]

user = root

password = *****

host = localhost

socket = /home/3306/mysql.sock

port = 3306 

c. 添加登录路径myremote,重新设定新密码

mysql@db01: ~$mysql_config_editor set --host=192.168.138.134 --login-path=myremote --password--user=root --port=3306

Enter password: 

到这里, 命令mysql_config_editor就基本介绍完了. 

最后看一个问题, 在登录路径mytest, 删除socket的信息, 是否还能登录呢

mysql@db01: ~$ mysql_config_editor remove --login-path=mytest --socket

mysql@db01: ~$mysql_config_editor print --login-path=mytest         

[mytest]

user = root

password = *****

host = localhost

port = 3306

测试发现, 还是可以登录的, 明明缺少了socket的信息呀

确实是这样, 只因为mysql会按照该顺序/etc/my.cnf,/etc/mysql/my.cnf, /usr/local/mysql/etc/my.cnf,  ~/.my.cnf寻找需要的socket参数, 使用如下方式可获取这些文件的信息(根据MySQL安装的不同, 可能某些文件的路径不同):

mysql@db01: ~$ mysql --help |grep -A 1 'Default options'

Default options are read fromthe following files in the given order:

/etc/my.cnf /etc/mysql/my.cnf/usr/local/mysql/etc/my.cnf ~/.my.cnf 

注意, 若这些文件中有相同的参数,后面文件中的参数会覆盖前面文件的; 对于登录路径mytest中已有的参数, mysql则不会再寻找. 

上面不是还保留着文件.my.cnf, mysql会从中找到socket =/home/3306/mysql.sock, 然后就登陆进去了.

验证下, 在文件.my.cnf, 添加井号#, 注释掉socket, 然后再尝试登录, 发现报错了:

mysql@db01: ~$ mysql--login-path=mytest

ERROR 2002 (HY000): Can'tconnect to local MySQL server through socket '/tmp/mysql.sock' (2)

看完以上关于MySQL数据库成功登录方法,很多读者朋友肯定多少有一定的了解,如需获取更多的行业知识信息 ,可以持续关注我们的行业资讯栏目的。

相关内容

热门资讯

小区2.82亩绿地“被交易”变... 近日,西安市世纪颐园小区业主向华商报大风新闻反映,小区西侧一块原本规划为公共绿地的土地,在多年前被开...
黄仁勋喝蜜雪冰城,品出了什么味... 每经评论员 朱成祥黄仁勋近期到访北京,被拍到在胡同喝豆汁、吃炸酱面、举着蜜雪冰城饮料。他表情轻松,与...
力箭系列率先实现民商火箭“百星... 来源:滚动播报 (来源:千龙网) 昨天(15日)12时33分,中科宇航力箭一号遥十三运载火箭在东风商...
B站独家直播中科院公众科学日:... 央广网北京5月16日消息(记者 殷雨婷)5月16日至17日,中国科学院第22届公众科学日在全国一百余...
飞沃科技获得实用新型专利授权:... 证券之星消息,根据天眼查APP数据显示飞沃科技(301232)新获得一项实用新型专利授权,专利名为“...
段永平的“本分”哲学,被OPP... 短短几十字的母亲节宣传文案,把OPPO推上了风口浪尖。 5月8日,手机品牌OPPO的官方微博、小红书...
百余家科创企业齐聚新疆 探索人... 乌鲁木齐5月15日电 (胡嘉琛)与机器人踢足球、遛机器狗……刚果(金)在华留学生基韦尼15日在乌鲁木...
山西一辆载有学生车辆侧翻,已致... 记者16日从山西省晋中市委宣传部获悉,16日上午,山西省晋中市左权县一载有学生的车辆发生侧翻,目前已...
研究生骗了医院1400万!根本... 通过虚开发票、冒名签名等方式,90后医学生套取医院科研经费达1426.828998万元。撰文丨凌骏一...
世佳博科技取得焊接板双面夹紧装... 国家知识产权局信息显示,北京世佳博科技集团有限公司取得一项名为“一种焊接板双面夹紧装置”的专利,授权...