Bootstrap

linux中重装mysql

一、卸载

1、使用以下命令查看当前安装mysql情况

rpm -qa | grep mysql

2、停止mysql服务、删除之前安装的mysql(如果没有包,直接进入第三步)

关闭MySQL服务(not be found就是没找到服务,则忽略该步骤)

如果MySQL服务正在运行,则执行service mysqld stop或者service mysql stop命令停止MySQL服务

service mysql stop

删除命令:rpm -e –nodeps 包名

rpm -ev MySQL-client-5.5.25a-1.rhel5  
rpm -ev MySQL-server-5.5.25a-1.rhel5  

如果提示依赖包错误,则使用以下命令尝试

rpm -ev MySQL-client-5.5.25a-1.rhel5 --nodeps

如果提示错误:error: %preun(xxxxxx) scriptlet failed, exit status 1

则用以下命令尝试:

rpm -e --noscripts MySQL-client-5.5.25a-1.rhel5

3、查找之前老版本mysql的目录、并且删除老版本mysql的文件和库

find / -name mysql

删除残留

删除残留的目录,只删除MySQL目录即可

admin@god:~$ sudo rm -rf  /usr/lib/mysql
admin@god:~$ sudo rm -rf  /usr/share/mysql

admin@god:~$ sudo rm -rf /var/log/mysql

删除MySQL配置文件

执行rm -rf /etc/my.cnf命令删除/etc/my.cnf文件,执行rm -rf /etc/init.d/mysqld命令删除/etc/init.d/下跟MySQL有关的全部文件,一般包括mysql文件或mysqld文件,如果存在mysql文件则执行:

admin@god:~$ sudo rm -rf  /etc/mysql

删除mysql用户及用户组

执行id mysql命令查看MySQL用户及用户组,执行userdel mysql命令删除MySQL用户及用户组

admin@god:~$ id mysql
uid=111(mysql) gid=123(mysql) groups=123(mysql)
admin@god:~$ sudo userdel mysql

4、总结

#将这三个命令依次执行,然后依次rm -rf,全部删除干净就行了,不然会遇到MySQL初始化过了等问题。
rpm -qa | grep mysql
rm -rf '上面命令搜索出来的路径及文件名'
whereis mysql
rm -rf '上面命令搜索出来的路径及文件名'
find / -name mysql
rm -rf '上面命令搜索出来的路径及文件名'

二、安装MySQL

1、下载资源

官网链接:MySQL :: Download MySQL Community Server (Archived Versions)

百度网盘:

2、解压资源

# 解压文件至/usr/local/目录
tar -xvf mysql-8.0.26-linux-glibc2.12-x86_64.tar.xz -C /usr/local/
# 重命名为 mysql
mv /usr/local/mysql-8.0.26-linux-glibc2.12-x86_64/ /usr/local/mysql

3、修改my.cnf配置文件

vi /etc/my.cnf

直接删除全部内容,将此复制进去即可

[client]
port = 3306
socket = /tmp/mysql.sock

[mysqld]
port = 3306
socket = /tmp/mysql.sock
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
log-error = /usr/local/mysql/mysqld.log
pid-file = /usr/local/mysql/mysqld.pid
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
lower_case_table_names = 1 # 不区分大小写
sql_mode = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO'
default-time_zone = '+8:00'

4、创建用户组

(1)创建用户组

groupadd mysql     #创建用户组

(2)创建用户

-r 参数表示 mysql 用户是系统用户,不可用于登录系统,创建用户 mysql 并将其添加

到用户组 mysql 中

useradd -r -g mysql mysql

(3) 分配用户组

chown -R mysql /usr/local/mysql/ # 将文件的所有属性改为 mysql 用户
chgrp -R mysql /usr/local/mysql/ # 将组属性改为 mysql 组

5、初始化数据库

cd /usr/local/mysql/bin    #进入mysql的bin目录下

[root@localhost bin]# ./mysqld --initialize --user=mysql
[root@localhost bin]# cat /usr/local/mysql/mysqld.log    #查看初始密码

6、启动服务

进入 cd /usr/local/mysql/support-files/ ,然后./mysql.server start 启动服务

./mysql.server start

7、启动后登录

一定要开启服务后才能登陆

root@god:/usr/local/mysql/bin#./mysql -u root -p

修改密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

8、加入到系统服务

# 复制 mysql.server 至/etc/init.d/重命名为 mysqld
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# 修改 vim /etc/init.d/mysqld 配置文件
修改内容: basedir=/usr/local/mysql
                   datadir=/usr/local/mysql/data
# 添加系统服务(service)启动信息
chkconfig --add mysqld     # 服务名字为mysqld

使用 chkconfig命令报错

chkconfig: command not found

问题原因

Ubuntu 中 chkconfig 已经被 sysv-rc-conf 所替代

解决办法:

apt-get update
apt-get install sysv-rc-conf
sysv-rc-conf --list

在进行安装sysv-rc-conf 有可能会出现Unable to locate package sysv-rc-conf

解决办法:

第一步:打开sources.list文件
vi /etc/apt/sources.list
第二步:在sources.list文件最后一行中添加如下一列文本
deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse
第三步:更新apt-get
 apt-get update
 第四步:重新安装sysv-rc-conf
 apt-get install sysv-rc-conf
 第五步:查看服务情况

到这里就可以用sysv-rc-conf 替代chkconfig命令了

或者复制sysv-rc-conf 命令为chkconfig

cp /usr/sbin/sysv-rc-conf /usr/sbin/chkconfig

重新添加系统服务

# 添加系统服务(service)启动信息
chkconfig --add mysqld     # 服务名字为mysqld

启动服务并查其状态:

systemctl start mysqld
systemctl status mysqld

9、设置环境变量

在vi /etc/profile文件添加如下:

export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$JAVA_HOME/bin:$MYSQL_HOME/bin

10、授权远程访问

登录mysql

mysql -u root -p

授权远程用户连接

# 改表法
# 选择数据库
use mysql;
# 最后授权 MySQL,允许远程用户登录访问 MySQL
update user set host = '%' where user = 'root';
# 刷新权限
flush privileges;

三、遇到问题

  1. mysql创建表没有权限

远程连接上mysql

在user表中的root用户权限全改为Y

注:不要改account_locked字段,改字段为锁定账户

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;