rpm -qa|grep -i mysql
rpm -ev bt-mysql56-5.6.47-1.el7.x86_64
find / -name mysql
删除MySQL对应的目录:
注意:卸载后配置文件 /etc/my.cnf 不会删除,需要手动删除
rm -f /etc/my.cnf
rpm -qa|grep -i mysql
没有结果显示,说明MySQL已经被完全卸载干净,接下来就可以重新安装自己想要的MySQL版本了。
cat /etc/group | grep mysql
cat /etc/passwd |grep mysql
groupadd mysql
useradd -r -g mysql mysql
# 下载命令
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
tar -xzvf mysql-8.0.28-el7-x86_64.tar.gz
解压完成后,可以看到当前目录下多了一个解压文件,移动该文件到/usr/local/下,并将文件夹名称修改为mysql。
如果/usr/local/下已经存在mysql,请将已存在mysql文件修改为其他名称,否则后续步骤可能无法正确进行。
[root@localhost /]# mkdir /usr/local/mysql/data
chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql
如果报以上错误,说明mysql用户不存在,执行以下命令,操作完再执行更改权限命令
groupadd mysql
useradd -r -g mysql mysql
注意:
此处若报错,表示该链接库文件有没有安装使用:
[root@ecs-xiaochengxu bin]# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
执行如下命令安装:
# 1.首先检查该链接库文件有没有安装使用,运行该命令后发现系统中无该链接库文件
rpm -qa|grep libaio
# 2. 安装
yum install libaio-devel.x86_64
成功后如下:
vim /etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/data
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
innodb_file_per_table=1
lower_case_table_names=1
character_set_server=utf8
参数注释:
lower_case_table_names:
是否区分大小写,1表示存储时表名为小写,操作时不区分大小写;0表示区分大小写;不能动态设置,修改后,必须重启才能生效:
character_set_server:
设置数据库默认字符集,如果不设置默认为latin1
innodb_file_per_table:
是否将每个表的数据单独存储,1表示单独存储;0表示关闭独立表空间,可以通过查看数据目录,查看文件结构的区别;
show variables like '%character%';
解决中文乱码问题:
#echo 修改my.cnf文件
#sudo vi /etc/my.cnf
#在[mysqld]下加入代码:
character_set_server=utf8
#在[ mysql ]下加入代码:
default-character-set=utf8
/usr/local/mysql/support-files/mysql.server start
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
service mysql restart
mysql -u root -p
# 使用以下命令修改密码
set password for root@localhost = password('123456');
# 报错使用下面命令修改
# 从8.0开始修改密码有了变化,在user表加了字段authentication_string,修改密码前先检查authentication_string是否为空
# 1.如果不为空
use mysql;
update user set authentication_string='' where user='root';--将字段置为空
ALTER user 'root'@'localhost' IDENTIFIED BY 'root';--修改密码为root
# 2.如果为空,直接修改
ALTER user 'root'@'localhost' IDENTIFIED BY 'root';--修改密码为root
mysql>use mysql;
msyql>update user set user.Host='%' where user.User='root';
mysql>flush privileges;