linux下Mysql的卸载和安装5.7.29

1,首先备份数据库

使用mysqldump命令,

先进入bin目录找到mysqldump命令

-E -R  备份上事件和存储过程,不带会丢失,切记!!!

压缩备份如下

mysqldump -h172.20.5.33 -uroot -p 

-E -R  dataassets1  | gzip > /tmp/backup/dataassets1.sql.gz

备份全库的话:

mysqldump -uroot -p --all-databases | gzip > /tmp/all.sql.gz

2,停止mysql服务、删除之前安装的mysql卸载数据库

使用如下命令,查询是否有安装mysql

rpm -qa|grep -i mysql

停止数据库

service mysql stop

有结果的话,用rpm -ev 命令删除,带上参数--nodeps

示例:rpm -ev MySQL-client-5.5.25a-1.rhel5 --nodeps

如果没有结果,无视

继续使用命令 find / -name mysql  

查找MySQL文件,然后rm -rf +路径删除,判断一下真实路径,防止误删除其他文件

卸载后/etc/my.cnf不会删除,可以不删除,重装时修改文件内容即可

3,安装mysql5.7.29

创建mysql文件

mkdir /usr/local/mysql

解压安装包

tar -xvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz

把解压后的内容移动到/usr/local/mysql这个目录下

mv mysql-5.7.29-linux-glibc2.12-x86_64/* /usr/local/mysql

进入文件夹内

cd /usr/local/mysql/

添加组 (重装时之前已经有了,不用创建)

groupadd mysql

添加用户(重装时之前已经有了,不用创建)

useradd -r -g mysql mysql

文件夹权限给到musql用户组

chown -R mysql:mysql /usr/local/mysql

创建data文件

mkdir /usr/local/mysql/data

初始化,记得进入bin目录,否则出现找不到文件错误

 /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

--------------若初始化报错,则缺少libiao,没有则无视

--------------yum install libaio

进入bin目录,开启SSL

/usr/local/mysql/bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data/

data文件权限给到mysql用户组

chown -R mysql:mysql /usr/local/mysql/data/

配置my.cnf,中间加上了skip-grant-tables,为了root第一次无密码验证登录

vi /etc/my.cnf

[mysqld]

character_set_server=utf8

init_connect='SET NAMES utf8'

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

#是否区分大小写:0-区分大小写,1-不区分大小写

lower_case_table_names = 1

skip-grant-tables

#不开启sql严格模式

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

[mysqld_safe]

socket=/tmp/mysql.sock

log-error=/var/log/mysqld.log

pid-file=/usr/local/mysql/data/mysqld.pid

启动mysql

service mysql start

如果启动失败

1.查询/etc/init.d/下是否存在mysql

ll /etc/init.d/ | grep mysql

发现该目录下并没有mysql的文件

2、查询mysql.server所在处

find / -name mysql.server

3、执行复制操作,/usr/local/mysql/是我自己的mysql安装目录,

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

--------设置开机自启动

替换mysqld为mysql.server

cp /usr/local/mysql/support-files/mysql.server  /etc/init.d/mysqld

修改修改mysqld

vim /etc/init.d/mysql

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

保存配置

chkconfig --add mysqld

4,修改root用户密码

执行这个命令,设置软链接到/usr/bin目录中,

ln  -s   /usr/local/mysql/bin/mysql    /usr/bin

mysql -u root -p   ,然后回车两次,进入到mysql

alter user 'root'@'localhost' identified by '新密码';

flush privileges ; 

quit;

如果报错:1290 - The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement

先执行下:flush privileges ;  

远程登录mysql

个人选择用navicat连接数据库,在mysql数据库中的user表中插入一条host值为%数据,然后更新密码,刷新

update mysql.user set authentication_string=password('新密码') where User='root' and host='%';

flush privileges ;

vi /etc/my.cnf 

注释掉  #skip-grant-tables

保存退出后

重启数据库

service mysql restart

5,新建数据库

个人喜欢navicat上新建数据库

6,恢复备份数据

gunzip < dataassets1.sql.gz | mysql -uroot -p dataassets1

7,新建用户,权限等

CREATE USER 'kettle'@'localhost' IDENTIFIED BY '密码';

CREATE USER 'kettle'@'%' IDENTIFIED BY '密码';

grant all privileges on kettle.* to kettle@localhost;

grant all privileges on kettle.* to kettle@'%';

flush privileges;

猜你喜欢

转载自blog.csdn.net/m0_60051198/article/details/121806558