一、 下载mysql5.7
Linux下载:
输入命令:wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
二、建立用户,以及mysql的目录
1、建立一个mysql的组
输入命令: groupadd mysql
2、建立mysql用户,并放到mysql组
输入命令:useradd -r -g mysql mysql
3、给mysql用户设置密码
输入命令:passwd mysql
三、解压mysql
1、把下载的mysql的包移动到Linux虚拟机下
2、把tar包放到/usr/local 目录下
输入命令:mv /software/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz /usr/local
3、解压
输入命令:cd /usr/local
输入命令:tar xzvf mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
4、把解压出来的文件改下名字,改为mysql
输入命令:mv mysql-5.7.17-linux-glibc2.5-x86_64 mysql
四、配置相关的启动配置文件
1、复制my_default.cnf到/etc/my.cnf (mysql启动时自动读取)
输入命令:cp my-default.cnf /etc/my.cnf
2、解决乱码问题
输入命令:vi /etc/my.cnf
更改:
3、复制mysql.server 到/etc/init.d/
输入命令:cp mysql.server /etc/init.d/mysql
4、修改 /etc/init.d/mysql 参数,给予2个目录位置
输入命令:vi /etc/init.d/mysql
更改:basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
5、 给目录/usr/local/mysql 更改拥有者
输入命令:chown -R mysql:mysql /usr/local/mysql/
五、初始化mysql的数据库
1、初始化数据库
首先要去到mysql/bin目录下
老版本的命令:mysql_install_db
新版本的命令:./mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
生成出一个data目录,代表数据库已经初始化成功
2、给数据库加密
输入命令:./mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
3、启动mysql
输入命令:./mysqld_safe --user=mysql &
&符号:把当前进程丢给后台
六、 进入客户端
1、 登录
输入命令:./mysql -uroot –p
然后输入你的临时密码
2、此时root用户不输密码登陆报错。需要更改/etc/my.cnf配置文件,然后重启mysql
输入命令:vi /etc/my.cnf
添加
[mysqld]
skip-grant-tables
输入命令:service mysql restart
3、 修改密码(切记:修改完密码后,需要执行flush privileges;)
输入命令:set password=password('你的密码');
mysql -uroot -p免密码登陆后,修改密码时报错:
报错:ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables opt
原因:权限没有刷新
解决:在mysql中执行命令:flush privileges;
4 查询当前mysql中所有的用户 更多详细命令参考
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
新建用户:
CREATE USER'mysql'@'localhost'IDENTIFIED BY'mysql';
为用户授权:
格式:grant 权限 on 数据库.* to username@登录主机 identified by "password";
实例:grant all privileges on testDB.* to mysql@localhost identified by 'mysql';
(为了时其他机器而访问)mysql@'%'
grant all privileges on *.* to mysql@'%' identified by 'mysql';
然后须要运行刷新权限的命令:
flush privileges;
这里如果只mysql@localhost,下一步用navicat连接虚拟机的mysql时会报错:
七、window远程访问Linux虚拟机的mysql
1、首先要关闭防火墙,这样window才能连接上
输入命令:systemctl stop firewalld.service
2、在windows中用navicat premium 客户端连接虚拟机中的mysql数据库
八、设置开机自动启动mysql服务
1、添加服务mysql
输入命令:chkconfig --add mysql
2、设置服务开机自启
输入命令:chkconfig mysql on
九、设置path环境变量
输入命令:vi /etc/profile
设置环境变量:export PATH=$JAVA_HOME/bin:/usr/local/mysql/bin:$PATH
十、linux虚拟机重启后,mysql进程正常运行但查看服务状态报错,navicat客户端也连接不上
service mysql status报错:
或者navicat premium 客户端连接不上MySQL:
1 切换到mysql用户下进行操作:su mysql
2 注意检查防火墙是否关闭:systemctl stop firewalld.service
参考帖子: