写作背景:
原来的Linux操作系统centos中安装的是mysql 8 ,实际工作中此版本需要低版本,所以删除了8,安装了5.7
版本号为:mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
工作目录:/usr/local/mysql
历史版本:http://downloads.mysql.com/archives/community/
参考来源:
1.安装mysql
https://blog.csdn.net/xixiangdeshaonian/article/details/86736120
2.删除mysql
https://blog.csdn.net/tjcyjd/article/details/52189182
正文开始
删除mysql
1、使用以下命令查看当前安装mysql情况
rpm -qa|grep -i mysql
可以看到如下图的所示:
显示之前安装了:
MySQL-client-5.5.25a-1.rhel5
MySQL-server-5.5.25a-1.rhel5
2、停止mysql服务、删除之前安装的mysql
删除命令: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
查找结果如下:
find / -name mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/lib64/mysql
删除对应的mysql目录
rm -rf /var/lib/mysql
rm -rf /var/lib/mysql
rm -rf /usr/lib64/mysql
查找目录并删除
注意:卸载后/etc/my.cnf不会删除,需要进行手工删除
rm -rf /etc/my.cnf
4、再次查找机器是否安装mysql
rpm -qa|grep -i mysql
无结果,说明已经卸载彻底
————————————————
版权声明:本文为CSDN博主「Java高知」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/tjcyjd/article/details/52189182
安装mysql (原文基础上做了部分内容改动)
检查是否安装了mysql
rpm -qa | grep mysql
如有,类似
mysql-libs-5.1.52-1.el6_0.1.x86_64
卸载之
rpm -e --nodeps mysql-libs-5.1.52.x86_64
检查否存在 mariadb 数据库,如有,卸载之,卸载同上
rpm -qa | grep mariadb
查看linux系统是64位还是32位
getconf LONG_BIT
自己上传的资源:
包含mysql安装包和my-default.cnf
到mysql官网下载安装包(64位)
mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
上传安装包至/usr/local,解压安装包
cd /usr/local
tar -zvxf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
重命名
mv mysql-5.7.25-linux-glibc2.12-x86_64 mysql
创建data目录
cd mysql
mkdir data
检查mysql组和用户是否存在,如无创建
cat /etc/group | grep mysql
#类似
mysql:x:490:
cat /etc/passwd | grep mysql
#类似
mysql:x:496:490::/home/mysql:/bin/bash
以上为存在的情况,如无,执行添加命令:
groupadd mysql
useradd -r -g mysql mysql#useradd -r参数表示mysql用户是系统用户,不可用于登录系统
将/usr/local/mysql的所有者及所属组改为mysql
chown -R mysql.mysql /usr/local/mysql
在/usr/local/mysql/support-files目录下创建my-default.cnf
20201028:重要更新:
MySQL大小写敏感可以通过配置文件的lower_case_table_names参数来控制。
WINDOWS系统下:
编辑MySQL安装目录下的my.ini 文件,在[mysqld]节下 添加 lower_case_table_names=0 (备注:为0时大小写敏感,为1时大小写不敏感,默认为1),可以实现MySql按照建表Sql语句的大小写状态来定义表名。
LINUX系统下:
编辑/etc/my.cnf文件(提示:如果没有可以用 find /usr -name my.cnf查找),在[mysqld]节下 添加 lower_case_table_names=1 参数,并设置相应的值 (备注:为0时大小写敏感,为1时大小写不敏感,默认为0)。
否则表会找不到
20210118:重要更新
mysql:1153 Got a packet bigger than ‘max_allowed_packet’ bytes的解决方法
备份还原或数据导入报错1153:Got a packet bigger than‘max_allowed_packet’bytes的问题
这个问题可以有2个解决方法:
1.临时修改:
mysql>set global max_allowed_packet=524288000; #修改 512M
2.修改my.cnf(windows下my.ini),需重启mysql。
在 [MySQLd] 部分添加一句(如果存在,调整其值就可以):
max_allowed_packet=256M (根据实际情况调整数值)
可通过命令:
show VARIABLES like '%max_allowed_packet%’;
查看是否修改成功!
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.
[mysqld]lower_case_table_names=1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLESbasedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
socket = /tmp/mysql.sock
character-set-server=utf8log-error = /usr/local/mysql/data/mysqld.log
pid-file = /usr/local/mysql/data/mysqld.pidmax_allowed_packet=256M
拷贝
cp ./support-files/my-default.cnf /etc/my.cnf
初始化 mysqld
cd /usr/local/mysql/bin
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
初始化完成之后,查看日志
/usr/local/mysql/data/mysqld.log
临时密码
[Note] A temporary password is generated for root@localhost: i8r#tnAuaanT
把启动脚本放到开机初始化目录
cd /usr/local/mysql
cp ./support-files/mysql.server /etc/init.d/mysql
成功运行,添加系统路径(类似于Windows把mysql的bin添加到path变量中)
# vim /etc/profile
添加:
export PATH=/usr/local/mysql/bin:$PATH使配置生效:source /etc/profile
启动mysql服务
service mysql start
查看mysql进程
ps -ef | grep mysql
登录mysql,密码为初始密码(上面安装时候生成的日志最后)
cd /usr/local/mysql/bin
./mysql -u root -p
修改密码
mysql> set password=password('root');
mysql> grant all privileges on *.* to root@'%' identified by 'root';
mysql> flush privileges;
添加远程访问权限
mysql> use mysql;
mysql> update user set host='%' where user = 'root';
mysql> flush privileges;
重启mysql生效
mysql> service mysql stop
mysql> service mysql start
或
mysql> service mysql restart
此外:原文有几处问题:
1.好的删除教程:https://blog.csdn.net/tjcyjd/article/details/52189182
2.最好把数据库的目录改为 mysql,这样在配置/etc/init.d/mysql的时候不用做更变,工作目录为:/usr/local/mysql
3.my_default.cnf是创建的名字,命令中却是my-default.cnf
4.成功运行,添加系统路径(类似于Windows把mysql的bin添加到path变量中)
# vim /etc/profile
添加:
export PATH=/usr/local/mysql/bin:$PATH使配置生效:source /etc/profile
5.配置mysql自动启动(这个不用,上面已经操作 “把启动脚本放到开机初始化目录” )
# chmod 755 /etc/init.d/mysql
# chkconfig --add mysql
# chkconfig --level 345 mysql on