省去一切前言…
安装说明
以
centos7
为例; centos 默认情况下会自动安装 mariadb,所以安装前请先删除mariadb数据库, 需要了解mariadb请自行查看mariadb。
- 执行
yum remove mariadb.x86_64
移除.( remove之前请查看对应需要移除的版本 通过 yum serach mysql 查看内置的 mariadb 版本)- 现在MySQL数据源 , 在MySQ
Lyum
下载地址找到对应的链接和版本复制下载链接就行对应下载。 eg:centOS mysql 8 下载链接https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
- 复制对应的下载链接,进入 centos 进行下载。执行
wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm
;安装时间依赖网速;一路 yes(y)
进行安装;- 安装结束后 默认情况下会自动启动MySQL 服务; 使用
ps -ef | grep 'mysql'
查看MySQL启动进程。
相关命令
- service mysqld start/resart/stop (启动、重启、关闭 相关服务)
链接数据库
安装好数据库后,就是链接数据库。数据库在安装过程中会自动创建一个临时密码。 请在
/var /log/mysqld.lod
进行密码查看。类似下面示例; 其中root@localhost: :9;0>yeDo?pW
中的:9;0>yeDo?pW
即为你的临时密码;这里我操作是可以看见我这个密码很恶心; 我是用这个密码进行登录一直登录失败;我曾使用:9;0>yeDo?pW(:前有空格哦!)
、:9;0>yeDo?pW(:前无空格哦!)
、9;0>yeDo?pW(没:没空格)
这上个密码进行参数均未成功; 之后就这能想到修改密码进行操作。 在/etc/my.cnf
文件中添加skip-grant-tables
保存之后进行数据库重启service mysqld restart
; 然后就可以直接登录MySQL; 允许mysql
进入MySQL数据库; 接下来就是进行密码修改;
划重点
- 进入
mysql 数据库下的 user表进行密码修改
; 在MySQL中密码是进行加密的;在MySQL5.版本中用户密码字段对应的是password;而我当时使用的树MySQL 8. 在8.* 这个版本中密码字段已经改为authentication_string
;所以在修改密码时请对应字段进行更新。网上一些帖子的操作是update user set password= password(‘123’) wehere User =‘root’ and Host='localhost'
类似的执行更新语句,不过你会发现该更新语句未能执行。 会提示在‘()’ 周围有错;这里我试了下 使用password(‘123’)加密密码这种语法是不能执行的,其中password的用法请查看MySQL相关说明 ;如果不用’()'是可以更新的。 eg:update user set password ='123' where User ='root' ...
是可以更新的;不过MySQL登录密码是加密的所以直接这样更新肯定是不行的虽然密码被跟新了;不过存放的是密文登录是验证不通过的。所以这样是不行的;
[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: :9;0>yeDo?pW
最终解决办法
- 执行
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourPassword@123;
说明
: 如果你设置的密码过于简单是不行的;密码要求会提示你至少输入一个大小写数字和符号组合的密码;所以对于修改即可;如果你先设置简单点执行set global validate_password_policy=0;
、set global validate_password_length=1;
后即可设置简单密码。 修改手再次执行你需要设置的密码即可。密码修改成功后 在/etc/my.cnf
文件中删除skip-grant-tables
保存之后进行数据库重启,既可以正常使用用户名和密码进行连接啦。
远程登录
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION; // 设置登录许可
// 修改权限许可后 需要更新权限 或 重启服务
flush privileges // 1更新权限
service mysqld restart //2 退出MySQL 执行 服务重启 两者执行其一即可
如果数据库连接失败 提示1251 。继续执行
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'yourpassword*123'
后更新flush privileges
;还需要注意的是 防火墙是否关闭。执行关闭service firewalld stop
说明
: 初次学习相关操作;以上均为个人实践操作;如果错误或是模糊的地方欢迎指出和交流。