mysql官网下载与Linux服务器位数一致的mysql版本
检查原来库文件是否存在,有则删除
rpm -qa | grep mysql
创建mysql用户
useradd -M -s /sbin/nologin mysql
将下载的tar包上传到服务器,解压 (我下载的是免编译的包,解压后可以直接用)
tar xf mysql-5.7.****************.tar -C /usr/local/
mv mysql-5.7.********** mysql
chown -R mysql:mysql /usr/local/mysql/
初始化数据库
cd /usr/local/mysql/
./bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 注意看是否有报错
cp -a ./support-files/my-default.cnf /etc/my.cnf
cp -a ./support-files/mysql.server /etc/init.d/mysqld
./bin/mysql_safe --user=mysql &
vim /etc/my.cnf 修改一下端口号
systemctl enable mysqld
systemctl restart mysqld.service
ps -ef | grep mysql 注意看是服务是否开启
初始化密码
mysql-5.6以后的版本,第一次启动时会在root目录下生成一个随机密码,文件名.mysql_secret
cat /root/.mysql_secret
ln -s /usr/local/mysql/bin/* /usr/local/sbin/
mysql -uroot -p
如果登录不上,就用这个办法
systemctl stop mysqld.service
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
此时直接输入mysql -u root mysql 进入了mysql
在5.7版的mysql数据库下的user表中已经没有password字段了,而是将用户密码存储在authentication_string字段
mysql> UPDATE mysql.user SET authentication_string=PASSWORD('123456') where USER='root' and hosst='root' or host='localhost';
mysql> flush privileges;
重启数据库
systemctl restart mysqld.service
新密码登录
mysql -uroot -p
授权远程访问(注意防火墙,selinux是否关闭)
mysql> grant all on *.* to root@'192.168.1.%' identified by 'root' with grant option;
mysql> flush privileges;