检查是否安装了mysql
Linux会自动mysql的一些内容,检查如果存在,需要卸载
[root@nl04 ~]# rpm -qa|grep mysql
mysql-libs-5.1.73-3.el6_5.x86_64
[root@nl04 ~]# rpm -e --nodeps mysql-libs-5.1.73-3.el6_5.x86_64
[root@nl04 ~]# rpm -qa | grep mariadb
[root@nl04 ~]# rpm -e –nodeps mariadb*
安装mysql
解压缩
[root@nl04 mysql-5.7.25]# tar -xzvf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
[root@nl04 mysql-5.7.25]# cd mysql-5.7.25/
[root@nl04 mysql-5.7.25]# mkdir data
检测并添加mysql用户
[root@nl04 mysql-5.7.25]# id mysql
#id: mysql:无此用户
#如果存在: userdel mysql
[root@nl04 mysql-5.7.25] #groupadd mysql
[root@nl04 mysql-5.7.25] #useradd -r -g mysql mysql
#useradd -r参数表示mysql用户是系统用户,不可用于登录系统
将/usr/local/mysql-5.7.25的所有者及所属组改为mysql
[root@nl04 mysql-5.7.25] #chown -R mysql.mysql /usr/local/mysql-5.7.25
在/usr/local/mysql-5.7.25/support-files目录下创建my_default.cnf
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
basedir = /usr/local/mysql-5.7.25
datadir = /usr/local/mysql-5.7.25/data
port = 3306
socket = /tmp/mysql.sock
character-set-server=utf8
log-error = /usr/local/mysql-5.7.25/data/mysqld.log
pid-file = /usr/local/mysql-5.7.25/data/mysqld.pid
拷贝
[root@nl04 mysql-5.7.25] #cp ./support-files/my-default.cnf /etc/my.cnf
初始化 mysqld
[root@nl04 mysql-5.7.25] #cd /usr/local/mysql-5.7.25/bin
[root@nl04 mysql-5.7.25] #./mysqld --initialize --user=mysql --basedir=/usr/local/mysql-5.7.25/ --datadir=/usr/local/mysql-5.7.25/data/
初始化完成之后,查看日志
[root@nl04 mysql-5.7.25] # cat /usr/local/mysql-5.7.25/data/mysqld.log
把启动脚本放到开机初始化目录
[root@nl04 mysql-5.7.25] #cp support-files/mysql.server /etc/init.d/mysql
启动mysql服务
[root@nl04 mysql-5.7.25] #service mysql start
查看mysql进程
[root@nl04 mysql-5.7.25] #ps -ef | grep mysql
关闭mysql服务
[root@nl04 mysql-5.7.25] #service mysql stop
设置密码
跳过mysql的密码认证
[root@izwz91h49n3mj8r232gqwez ~]# vim /etc/my.cnf
#加入在 [mysqld]一栏下面加入一行
#skip-grant-tables重启一下Mysql服务
修改登录密码
[root@nl04 mysql-5.7.25] #service mysql restart
[root@nl04 mysql-5.7.25] #cd /usr/local/mysql-5.7.25/bin
[root@nl04 mysql-5.7.25] #./mysql
mysql> update mysql.user set authentication_string=password('root') where user='root' and Host ='localhost';
mysql> flush privileges;
mysql> quit;
下一步便是把刚才我们改的mysqld.cnf文件,把刚才加入的那一行注释或者删除:skip-grant-tables ,保存退出。
重启一下Mysql服务并重新登录
[root@nl04 mysql-5.7.25] #service mysql restart
[root@nl04 mysql-5.7.25] #cd /usr/local/mysql-5.7.25/bin
[root@nl04 mysql-5.7.25] #./mysql -u root –p
修改密码
mysql> set password=password('root');
mysql> grant all privileges on *.* to root@'%' identified by 'root';
mysql> flush privileges;
添加远程访问权限
mysql> set password=password('root');
mysql> grant all privileges on *.* to root@'%' identified by 'root';
mysql> flush privileges;
如果有报错
ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'
然后查看了下数据库的host信息如下:
host已经有了%这个值,所以直接运行命令:
MySQL>flush privileges;
MySQL>quit;
[root@nl04 mysql-5.7.25] #service mysql restart
此时可以用Navicat for MySQL连接mysql了