[toc]
一、mysql彻底卸载
(一)查看mysql安装情况
rpm -qa|grep -i mysql
我的之前安装:
[root@localhost lib]# rpm -qa|grep -i mysql
mysql-libs-5.1.73-8.el6_8.x86_64
perl-DBD-MySQL-4.013-3.el6.x86_64
mysql-server-5.1.73-8.el6_8.x86_64
mysql-5.1.73-8.el6_8.x86_64
(二)停止mysql服务、删除之前安装的mysql
删除命令:rpm -e --nodeps 包名
rpm -ev --nodeps mysql-libs-5.1.73-8.el6_8.x86_64
rpm -ev --nodeps perl-DBD-MySQL-4.013-3.el6.x86_64
rpm -ev --nodeps mysql-server-5.1.73-8.el6_8.x86_64
rpm -ev --nodeps mysql-5.1.73-8.el6_8.x86_64
若提示错误:error: %preun(xxxxxx) scriptlet failed, exit status 1。
则可用下面的命令:
rpm -e --noscripts mysql-libs-5.1.73-8.el6_8.x86_64
(三)查找之前Mysql的安装目录,并删除老版本mysql的文件和库
[root@localhost lib]# find / -name mysql
/etc/rc.d/init.d/mysql
/usr/lib64/mysql
/usr/local/mysql
/usr/local/mysql/data/mysql
/usr/local/mysql/include/mysql
/usr/local/mysql/bin/mysql
/usr/share/mysql
/var/mysql
[root@localhost lib]# find / -name mysql*
注意:卸载后/etc/my.cnf不会删除,需手动删除:
rm -rf /etc/my.cnf
二、linux环境下mysql的安装
(一)下载mysq源安装包、安装mysql源
wget https://repo.mysql.com//mysql80-community-release-el6-3.noarch.rpm
#wget http://dev.mysql.com/get/mysql80-community-release-el6-3.noarch.rpm
yum -y localinstall mysql80-community-release-el6-3.noarch.rpm
(二)检测是否安装
yum repolist enabled | grep "mysql.*-community.*"
[root@localhost bak-up]# yum repolist enabled | grep "mysql.*-community.*"
mysql-connectors-community MySQL Connectors Community 137
mysql-tools-community MySQL Tools Community 93
mysql80-community MySQL 8.0 Community Server 169
(三)安装mysql
yum install mysql-community-server
(四)启动mysql,并设置开机自启动
systemctl start mysqld # 启动mysql
systemctl enable mysqld # 开机启动
systemctl daemon-reload # 重新加载某个服务的配置文件
rpm -aq | grep -i mysql # 查看mysql版本
centos6没有systemctl命令,可以使用service替换
注意service和systemctl区别;
注意chkconfig和systemctl命令区别
service mysqld start # 启动mysql
chkconfig mysqld on # 开机启动
rpm -aq | grep -i mysql # 查看mysql版本
(五)查看初始密码
grep 'A temporary password' /var/log/mysqld.log
#或者下面语句
cat /var/log/mysqld.log | grep password
如果遇到mysqld.log中根本没有temporary password,是空的,则按下面操作:
# 1.删除原来安装过的mysql残留的数据(这一步非常重要,问题就出在这)
rm -rf /var/lib/mysql
# 2.重启mysqld服务
#systemctl restart mysqld
service mysqld restart
# 3.再去找临时密码
grep 'temporary password' /var/log/mysqld.log
[root@localhost bak-up]# cat /var/log/mysqld.log | grep password
2020-10-16T03:11:44.935920Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Z#)+Ld#xM5Ss
(六)修改mysql密码
mysqladmin -u root -p'旧密码' password '新密码'
[root@localhost lib]# mysqladmin -u root -p'xe3:%dt8/lmD' password '123456'
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.
mysqladmin: unable to change password; error: 'Your password does not satisfy the current policy requirements'
出现上述情况是因为密码太简单,要么把密码设置复杂一些,要么按下面操作:
# 关闭mysql密码强度验证(validate_password)
# 1 编辑配置文件:
vim /etc/my.cnf # 增加这么一行validate_password=off
# 2 编辑后重启mysql服务
#systemctl restart mysqld
service mysqld restart
修改密码另一种方法是先用初始密码登录,然后通过 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码'; 命令来修改密码:
mysql -u root -p #输入初始密码进入界面
#下面使支持简单密码
mysql>set global validate_password.policy=0;
mysql>set global validate_password.length=1;
mysql>ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
mysql>exit;
(七)设置端口、编码格式
如果没有开启防火墙,则输入:
# centos 7ji
systemctl start firewalld
# centos 6
service iptables start
输入以下命令,则开放3306端口:
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
配置默认编码为UTF-8
修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置,如下所示:
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'