一、卸载原来的mysql
出现这种错误极有可能是上一个mysql的残留文件没有删除,在/etc目录下查找有没有my.cnf文件,如果有删除它 rm -rf my.cnf。再去/usr/local和root目录下查看有没有mysql的相关文件,全部清除。然后在命令行输入命令:
rpm -qa |grep mysql
把列出的文件全部删除
rpm -e --nodeps 软件名称
然后执行命令
find / -name mysql
意思是从根目录查找,有没有叫mysql的文件
把显示出来的文件全部删除
rm -rf 文件路径/
二、安装mysql
然后把压缩包解压到/usr/local目录
tar zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz /usr/local
进入/usr/local/目录 把解压包重命名为mysql
mv mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz mysql
2.创建用户组和用户
创建用户组:
groupadd mysql
创建用户:
useradd -r -g mysql mysql
为了安全性,给mysql数据库创建专有用户,该用户只能访问mysql目录,不能访问系统其它目录
另外不建议直接用root初始化mysql,否则连接mysql时会报错:[ERROR] Fatal error: Please read "Security" section of the manual to find out how to run mysqld as root!
3.给mysql目录指定专有用户和用户组
首先创建data目录:
cd /usr/local/mysql
mkdir data
指定用户和用户组:
cd /usr/local
chown -R mysql mysql/
chgrp -R mysql mysql/
-R包含目录下所有和目录和文件
4.初始化mysql
cd /usr/local/mysql/bin
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --lc_messages_dir=/usr/local/mysql/share --lc_messages=en_US
记住生成的临时密码
如果忘记密码或者想重新初始化,可以先将mysql/data目录中文件删除,然后再执行初始化命令
5.配置my.cnf
从5.7.17后mysql就没有默认的my_default.cnf文件,需要手动创建
cd /etc
cat>>my.cnf
输入以下内容,ctrl+D退出
[mysqld]
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/
6.启动mysql
cd /usr/local/mysql/bin
./mysqld_safe --user=mysql &(回车返回命令行状态)
7.设为开机启动
cd /usr/local/mysql/support-files/
cp mysql.server /etc/init.d/mysql
vi /etc/init.d/mysql
将mysql目录填上:
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/
授权:
chmod +x /etc/init.d/mysql
设为开机启动:
chkconfig --add mysql
service启动
重启服务:
service mysql restart
停止服务:
service mysql stop
启动服务:
service mysql start
查看服务:
service mysql status
8.登录mysql修改密码授权远程登录
cd /usr/local/mysql/bin
登录:
mysql -u root -p 输入临时密码
修改密码:
set password=password("root");
登录授权:
grant all privileges on . to'root' @'%' identified by 'root'
授权生效:
flush privileges
完成!