环境:
云服务器 镜像 Linux centos 7.6
MySQL: mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz
安装过程就忽略不计了, 非要说的话,就是
下载MySQL的包(推荐8.x版本) ----> 通过 SSH 上传到云服务器 ----> 选择一个目录进行解压 ----> cd 解压后的文件夹/bin ----> ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
这里要注意目录的问题, 根据自己解压的目录来设置
如何解压 xz 后缀的压缩包?
1. xz -d ****.tar.xz 先将 xz 解压成 tar
2. tar -zxvf ****.tar 再解压 tar
为了以后启动数据库的时候方便
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
这样以后就可以通过service mysql start/restart 来操作 MySQL 了
问题1:
mysql> use mysql; ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
翻译过来就是 ---> 在执行此语句之前,必须使用alter user语句重置密码。
于是我就尝试着去初始化密码, 然后就有了问题2 ......
问题2:
mysql> SET PASSWORD = PASSWORD('123456'); ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'PASSWORD('123456')' at line 1
翻译过来就是 -----> 您的sql语法有错误;请查看mysql服务器版本对应的手册,在第1行的“password('123456')”附近使用正确的语法
于是我根据上面那个链接又换了一种方法, 然而......
mysql> UPDATE mysql.user SET Password=PASSWORD('123456') WHERE User='root'; ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '('123456') WHERE User='root'' at line 1
都不用特意的去翻译, 我就知道是SQL语句的版本问题, 然后我去了MySQL的官方文档处寻求答案 https://dev.mysql.com/doc/refman/8.0/en/password-management.html 大概看了一下后依然懵逼
然后, 我看到了
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; Query OK, 0 rows affected (0.03 sec)
果然高赞不是最靠谱的, 有时候就算是看到了感觉像是最好的答案也要在看看其他的选项, 就这样, 我们暂且将密码设置为 123456, 重新登录一下试试康~
咿呀哒! 问题解决
mysql> use mysql;
Database changed
然后我操作的目的就是为了实现远程登录, 因为我不想敲建库建表的代码, 想通过 Navicat 远程控制, 开启MySQL的远程登录连接, 顺便修改一下密码, 毕竟是要正式使用的数据库
mysql> update user set user.Host='%' where user.User='root'; Query OK, 1 row affected (0.01 sec) Rows matched: 1 Changed: 1 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
开启远程连接成功
emmmmm......我去研究一下怎么安全卸载MySQL