1.18 MySQL 使用总结¶
1. 安装MySQL-python¶
MySQL-python 这玩意实在是太难装了,为了以防后面再踩坑,这里还是记录一下吧。
以下是我成功安装后的总结,别看总结起来很顺利,其实中间经过很痛苦的挣扎。
遇到各种各样的错误,幸亏自己对于这些错误还有一定的辨识处理能力。
首先,要顺利安装 MySQL-python,请先保证你的环境是干净的(MySQL)
因为在我准备安装 MySQL-python 之前,我电脑上使用的MySQL,是 XAMPP这个功能强大的建站集成软件包自带的,安装它,就会自动安装一些开发常用的软件 如 Apache,MySQL,PHP,PERL。
使用它的话,MySQL会装在 /Applications/XAMPP/xamppfiles/ 下,与我们正常使用brew 安装的路径不一样,所以经常会有各种使用问题,因此为了不必要的麻烦,保证环境的干净,请先卸载所有其他安装来源的 mysql。
除了 XAMPP 之外,如果之前使用 brew 安装过 mysql,这时也请将其卸载再重新安装吧。
brew remove mysql
什么?没有用过 brew?这么好用的包管理器,必须安利你用起来。
由于后面安装mysql也将使用 brew,所以你必须安装。方法如下
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
由于默认的 brew 源是国外的,非常非常地慢,建议换成国内的源,方法如下
cd "$(brew --repo)"
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git
brew update
卸载掉所有的 mysql 和 替换源成功后,就可以开始mysql了,这里我还是选择安装的 5.7 版本的。
brew install mysql@5.7
经过漫长的等待后,mysql 终于安装成功
这时候,再 执行 pip install MySQL-python,发现还是报错。
有经验的我,立马知道了 mysql_config
这个文件的路径可能没有在环境变量中。
然后,我又重新执行 pip install MySQL-python
,发现还是报错。
但是这个错误相对比较明显,明眼人一看就知道是权限不足。
那我就以 root 权限去安装好了。
终于安装成功,折腾了两个晚上(主要是网速慢)。
2. Mac 启动MySQL服务¶
使用 brew 安装 mysql 成功后,又陷入了一个坑。。
就是无法通过正常的 mysqld start
去启动,也无法使用图形界面去启动。
我原以为是旧数据的影响,然后把所有的旧数据清空后发现,仍然无法启动,从错误日志中没有发现可行的解决方案。
最后我才认定这是安装方法导致的启动方式的差异。使用brew 安装的mysql也需要使用brew启动myql
# 启动 mysql, 并设置为开机启动
brew services start mysql
# 关闭 mysql
brew services stop mysql
# 重启 mysql
brew services restart mysql
启动后,如何设置初始化密码呢?
cd /usr/local/Cellar/mysql@5.7/5.7.25/bin
./mysql_secure_installation
选择密码强度,视情况而写,我这边选最强的,长度大于8,有数字,有大小写,有特殊字符。
接下来还会问你,是否删除其他匿名用户,是否删除 test 数据库,是否允许远程使用root登陆(安全起见我选不允许)。
一切设置完成后,就可以直接使用 root 登陆数据库。
mysql -uroot -p
3. Win上忘记密码¶
# 先将mysql服务停掉,可以通过命令行,也可以通过“服务”图形界面关闭
net stop mysql;
# 切换到 mysql 的 bin 目录下
cd E:\Program Files\MySQL\MySQL Server 5.6\bin
# 开启免密服务
mysqld --defaults-file="E:\ProgramData\MySQL\MySQL Server 5.6\my.ini" --skip-grant-tables
# 再开一个cmd窗口
mysql -uroot -p # 直接回车
# 修改密码
>use mysql;
>UPDATE user SET Password=PASSWORD('123456') where USER='root' and Host='localhost';
>FLUSH PRIVILEGES;
>quit
# 再重新登陆,用新的密码登陆,发现可以生效
mysql -uroot -p