准备安装文件mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz,安装:
1.卸载Linux系统上自带的mysql插件
查找mysql相关安装:
rpm -qa|grep -i mysql
卸载命令:rpm –ev 包名
查找老版本mysql相关的安装目录命令:
find / -name mysql
若查找到相关目录使用命令:rm –rf 目录名
最后使用命令:rpm -qa|grep -i mysql,重新检查一遍系统中是否安装mysql
如果是centos7,那么默认会安装一个mysql的分支产品mariadb,必须先卸载此分支产品
rpm -qa | grep mariadb
一个个卸载,如
rpm -e --nodeps mariadb-libs-5.5.35-3.el7.x86_64
2.安装包处理
mv 安装包 /usr/local/
cd /usr/local
tar -xzvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
重命名文件夹名:
mv 解压后的文件 mysql
cd /usr/local/mysql
mkdir data
查看组和用户情况
cat /etc/group | grep mysql
cat /etc/passwd |grep mysql
若存在,则删除原mysql用户:userdel -r mysql,会删除其对应的组和用户。
在查看就会发现没有,说明你已经删掉了
创建mysql组和mysql用户(mysql路径下)
groupadd mysql
useradd -r -g mysql mysql
chown -R mysql:mysql /usr/local/mysql
创建配置文件及相关目录
cd /etc/下 touch my.cnf
vi my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
socket=/tmp/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/tmp/mysqld/mysqld.pid
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
log-bin=mysql-bin
binlog-format=ROW
server_id=1
max_connections=1000
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
:wq!保存退出
cd /
cd tmp/(没有的话创建)
/tmp/mysqld/mysqld.pid
mkdir mysqld
cd mysqld
touch mysqld.pid
cd ..
chown -R mysql:mysql mysqld
cd mysqld
chmod 755 mysqld.pid
cd /
创建文件/var/log/mysqld.log:
touch /var/log/mysqld.log
chown -R mysql:mysql /var/log
cd log
chmod 755 mysqld.log
安装和初始化数据库
进入bin目录:
cd /usr/local/mysql/bin/
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql--datadir=/usr/local/mysql/data
这时会出现错误
./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file:
No such file or directory
解决方案:
yum install -y libaio
在执行./mysqld --initialize --user=mysql --basedir=/usr/local/mysql--datadir=/usr/local/mysql/data
安全启动:
./mysqld_safe --user=mysql &
是否启动成功,可以通过查看mysql进程,ps -ef | grep mysql
默认密码在mysqld.log日志里, 找到后保存到安全的地方:(前10行,root@localhost: 后面的没起那面的空格)
cat /var/log/mysqld.log
进入bin目录:
cd /usr/local/mysql/bin/
登录mysql:
./mysql -u root -p
拷贝或者输入mysqld.log中获得的默认密码,即可进入mysql命令客户端
若输入相关命令,则会提示你修改用户密码,则:
show databases;
mysql> set password=password("root");
立即生效:
mysql> flush privileges;
退出quit 或者 exit;
mysql> quit;
开机服务启动设置:
把support-files/mysql.server 拷贝为/etc/init.d/mysql:
cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
查看是否拷贝成功:
cd /etc/init.d/
ll
查看mysql服务是否在服务配置中
chkconfig --list mysql
若没有,则把mysql注册为开机启动的服务,然后在进行查看
chkconfig --add mysql
chkconfig --list mysql
启动 或 停止
service mysql start
service mysql stop
服务启动后,直接运行mysql -u root -p即可登录,不需要进入到对应的目录。
ln -s /usr/local/mysql/bin/mysql /usr/bin