一、卸载
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;
三、遇到问题
mysql创建表没有权限
远程连接上mysql
在user表中的root用户权限全改为Y
注:不要改account_locked字段,改字段为锁定账户