全新安装的mysql默认设置为@IBOutlet weak var button: UIButton!
print(button.subviews.count)
和root
。但是,在我的系统上,您可以成功运行using password: NO
,但mysqladmin ping
将失败。这告诉我mysqladmin正在从某个地方读取用户/传递。
我正在尝试在另一个系统上重新创建它。我知道用户名和密码,并且可以在我的新服务器上成功mysqladmin ping -u root
,但我需要对其进行设置,以便mysqladmin ping -u myuser -p 'mypass'
单独工作而无需传递mysqladmin ping
和{{1明确地。
以下是一些显示旧系统和新系统之间差异的输出(最后一行是唯一的区别):
旧服务器
myuser
新服务器
mypass
答案 0 :(得分:0)
MySQL 5.7及更高版本将root保存在MySQL日志文件中。
请试试这个:
sudo grep'临时密码' /var/log/mysqld.log
答案 1 :(得分:0)
我找到了一个临时的解决方法,但肯定不是理想的。 mysqladmin
可以使用bash函数重载,该函数会附加用户/传递详细信息。
我不认为这是在我的旧服务器上完成的,因为我已经查看了.bashrc
,.bash_profile
等。
mysqladmin() {
if [[ $@ == "ping" ]]; then
command mysqladmin ping -u myuser -p mypass
else
command mysqladmin "$@"
fi
}
这很糟糕,因为:
.bashrc
mysqladmin
答案 2 :(得分:0)
mysqladmin ping
没有“默认用户”或“默认密码”,即使用户和密码无效也应该有效。此服务器上的行为是非标准的。
这是因为mysqladmin被以下bash包装器偷偷取代:
$ cat `which mysqladmin`
#!/bin/bash
# wrapper to make our local MySQL work
#
# Where are we again?
case $0 in
/*) SHELLFILE=$0 ;;
./*) SHELLFILE=${PWD}${0#.} ;;
../*) SHELLFILE=${PWD%/*}${0#..} ;;
*) SHELLFILE=$(type -P "$0") ; if [ "${SHELLFILE:0:1}" != "/" ]; then SHELLFILE="${PWD}/$SHELLFILE" ; fi ;;
esac
# readlink -m makes sure SHELLDIR is a simple absolute path
SHELLDIR=`readlink -m "${SHELLFILE%/*}"`
# Call the original mysqladmin with appropriate settings
${SHELLDIR}/mysqladmin.orig --protocol=TCP --port=4777 $*
在我的情况下,修复是打开端口4777,但故事的一般道德是:
如果mysqladmin
(或任何程序)以未记录的方式运行,则值得检查程序是否已被包装,别名或使用bash函数重载(如我的其他答案)。< / p>