环境:

云服务器 镜像 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语句重置密码。

问题拓展: https://stackoverflow.com/questions/33467337/reset-mysql-root-password-using-alter-user-statement-after-install-on-mac

于是我就尝试着去初始化密码, 然后就有了问题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

12-28 08:35
查看更多