开场白:
服务器经过扩容后重启,莫名其妙的mysql不能重启,查看后发现mysql被损坏,于是卸载重装
接手时情况:
mysql根目录(包已经解压完毕):/u01/iflytek/sgy/server/mysql-5.7
之前mysql数据位置:/u01/iflytek/data/mysql/data/
首先下载mysql :选择Linux - Generic (glibc 2.12) (x86, 64-bit), Compressed TAR Archive下载即可
1.把下载完的文件上传到linux服务器,开始解压。
tar -xvzf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
2.解压改下名字,方便后续操作。我这里命名为mysql-5.7。
mv mysql-5.7.22-linux-glibc2.12-x86_64 mysql
3.新建用户组合用户。 (之前mysql用户已经存在,操作时省略了此处步骤)
groupadd mysql
useradd -r -g mysql mysql
4.mysql根目录下新建data数据文件夹
mkdir /u01/iflytek/sgy/server/mysql-5.7/data
修改data权限
cd /u01/iflytek/sgy/server/mysql-5.7/data
chown -R mysql:mysql ./
5.进入mysql根目录
cd /u01/iflytek/sgy/server/mysql-5.7
6.初始化配置(初始化完毕后在命令行最后会提供生成好的随机密码,先拷贝下来,如此处为 TVlnsq.Pf0Ba)
./bin/mysqld --initialize --user=mysql --basedir=/u01/iflytek/sgy/server/mysql-5.7 --datadir=/u01/iflytek/sgy/server/mysql-5.7/data
7.mysql根目录下把除了data外的所有mysql文件的权限都设置为root
cd /u01/iflytek/sgy/server/mysql-5.7 chown -R root .
chown -R mysql data
8.mysql根目录中新建了一个tmp文件夹,修改下权限
chown -R mysql:mysql tmp
9.增加配置文件:/etc/my.cnf,内容如下
[mysqld]
basedir=/u01/iflytek/sgy/server/mysql-5.7
datadir=/u01/iflytek/sgy/server/mysql-5.7/data
socket=/u01/iflytek/sgy/server/mysql-5.7/tmp/mysql.sock
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[client]
socket=/u01/iflytek/sgy/server/mysql-5.7/tmp/mysql.sock
[mysqld_safe]
#log-error=/var/log/mariadb/mariadb.log
#pid-file=/var/run/mariadb/mariadb.pid
basedir=/u01/iflytek/sgy/server/mysql-5.7
datadir=/u01/iflytek/sgy/server/mysql-5.7/data
socket=/u01/iflytek/sgy/server/mysql-5.7/tmp/mysql.sock
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
10.创建文件夹:
mkdir /etc/my.cnf.d/
11.启动mysql服务:输入bg 后台运行,
./bin/mysqld_safe&
12.然后再运行ps -ef|grep mysql检查可以看到mysql已经启动了
13.连接mysql 提示输入密码后连接成功(自动生成的随机密码)
./bin/mysql -uroot -p
14.修改密码:刚才的密码只是初始自动生成的随机密码,我们在之后如果想要使用mysql的话还需要中心设置下密码,不然连远程访问都干不了,这里修改的是root的密码
SET PASSWORD = PASSWORD('新密码');
flush privileges;
15.开启远程访问,分别输入:
use mysql;
update user set host = '%' where user = 'root';
select host, user from user;
16.退出mysql连接,quit,重启后生效
1)关闭mysql,输入密码后关闭
cd /u01/iflytek/sgy/server/mysql-5.7
./bin/mysqladmin -u root -p shutdown
2)启动mysql: ./bin/mysqld_safe&
17.尝试远程连接,mysql安装及访问完成
更改mysql数据库的存储路径
由于之前有data数据,新建的mysql更改mysql数据库的存储路径
由路径:/u01/iflytek/sgy/server/mysql-5.7/bin
改为新路径:/u01/iflytek/data/mysql/data/
1、停止掉mysql服务,输入密码后关闭
cd /u01/iflytek/sgy/server/mysql-5.7
./bin/mysqladmin -u root -p shutdown
2、修改mysql配置文件,执行“vi /etc/my.cnf”命令并确定。(一般只需要修改datadir的路径即可)
修改配置文件中 所有datadir路径为新路径:
vi /etc/my.cnf
3、将新建的目录授权给mysql用户
chown -R mysql.mysql /u01/iflytek/data/mysql
4、重启MySQL服务
此时关闭mysql会出现问题,提示密码不正确
5、data下的server-uuid已经变更,之前的密码识别不了,
把原data目录下,/u01/iflytek/sgy/server/mysql-5.7/data/auto.cnf中的
server-uuid=d9245454-5aa0-11e9-b5ff-d00df7363ef3
复制到新的data目录下,/u01/iflytek/data/mysql/data/auto.cnf
6、关闭并重新启动mysql
7、测试连接,之前的数据库可测试成功