cp support-files/mysql.server /etc/rc.d/init.d/mysql
首先到官网下载tar文件上传到linux 服务器上
解压文件: tar -zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz ;
复制解压文件到 /usr/local目录下 在mysql 更目录下执行 mv mysql-5.7.26 /usr/local/mysql 作用是复制并重命名
3.新建用户组合用户(我也不知道这步的作用,先记录下来)。在mysql 更目录下执行 groupadd mysql useradd -r -g mysql mysql
4.修改mysql根目录用户权限 (我也不知道这步的作用,先记录下来) chown -R mysql . chgrp -R mysql . 或者 cd mysql chown -R mysql:mysql ./
5.新建data 目录 mkdir data 新建完后修改权限 cd data chown -R mysql:mysql ./
6.初始化 MySQL 配置表 ./bin/mysqld --initialize --user=mysql --basedir=/home/mysql --datadir=/home/mysql/data
这时候直接初始化如果报错 则执行 yum install libaio 中间按 y 回车
检查etc目录下是否有 my.cnf文件,若有则先给它如下配置
[mysqld] basedir=/usr/local/mysql datadir=/usr/local/mysql/data socket=/usr/local/mysql/tmp/mysql.sock port=3306 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES # skip-grant-tables # Disabling symbolic-links is recommended to prevent assorted security risks # symbolic-links=0 [client] socket=/usr/local/mysql/tmp/mysql.sock [mysqld_safe] #log-error=/var/log/mysqld.log #pid-file=/var/run/mysqld/mysqld.pid basedir=/usr/local/mysql datadir=/usr/local/mysql/data socket=/usr/local/mysql/tmp/mysql.sock port=3306 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
在mysql的安装根目录新建tmp文件 同时修改其权限 chown -R mysql:mysql ./
尝试启动mysql service mysql start(启动) service mysql stop(停止) service mysql restart(重启)
若不能正常启动则执行命令(在mysql安装目录执行):
cp support-files/mysql.server /etc/rc.d/init.d/mysql
再次启动;
启动后就是连接数据库,整理介绍无密码登录
在/etc/my.cnf加入代码
[mysqld]
skip-grant-tables
然后重启mysql 连接服务 ./bin/mysql -uroot -p 回车,不输入密码直接回车即可登录
下面才是重点,很多时候到这里就出现很难搞定的问题
首先修改 用户登录密码:
update user set authentication_string = ’password’ where user="root" ;
flush privileges;
退出注释掉
[mysqld]
#skip-grant-tables
然后重启mysql 服务,再次登录数据库。我这里遇到的问题是
Access denied for user ‘root‘@‘localhost‘
解决办法是再次以无密码登录方式登录到数据库执行
mysql> grant all privileges on *.* to root@‘%‘ identified by ‘密码‘;
mysql> flush privileges;
发现无密码条件下,没有授权的写权限
执行上述命令时,我没有遇到这个问题就解决了,这里做个补充
再次退出注释掉
#skip-grant-tables
然后重启服务登录数据库,我这次是成功的,
然后也是重点;修改远程登录权限
mysql> update user set host = ‘%’ where user = ‘root’;
这样就可以在远程登录到数据库了,简要记录,后面遇到问题了再补充。
原文:https://www.cnblogs.com/yunian139/p/10984504.html