1 软件的基本安装过程
1 卸载已有的mysql
1.查看系统是否安装了mysql软件
# rpm -qa|grep -i mysql
2.将已经安装过的软件卸载掉。注意:这样的卸载是不彻底,不过这里够用了。
# yum remove '软件名'
2 准备mysql的repo
源
总结代码:
# wget http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm # rpm -ivh mysql57-community-release-el7-7.noarch.rpm
CentOS 7
的yum
源中默认是没有mysql
的。所以,为了解决这个问题我们首先下载安装mysql
的repo
源。
# wget http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm
# rpm -ivh mysql57-community-release-el7-7.noarch.rpm
安装之后会获得/etc/yum.repos.d/mysql-community.repo
和/etc/yum.repos.d/mysql-community-source.repo
两个源,可以去相应的路径下查看一下。
3 安装mysql
使用代码总结:
# yum install mysql-server # yum install mysql-devel # yum install mysql
# rpm -qa | grep -i mysql
1.安装mysql-server
# yum install mysql-server
2 安装mysql-devel
# yum install mysql-devel
3.安装mysql
# yum install mysql
安装完成之后重新检查一下安装了的mysql
软件。
# rpm -qa|grep -i mysql
一般来说,只要安装mysql-server跟mysql-client 。
2 服务开关操作
# service mysqld status 查看mysql当前的状态 # service mysqld stop 停止mysql # service mysqld restart 重启mysql # service mysqld start 启动mysql
3 将MySQL加入开机启动
# systemctl enable mysqld
4 启动mysql服务进程
# systemctl start mysqld
或者使用下面的代码:都是启动mysql服务,效果一样。
# service mysqld start 启动mysql
5 无法登录问题解决
登录root
帐号需要密码,不过我们没有。
下面是这个问题的详细解决过程
1 修改配置文件,跳过用户验证
1.在/etc/my.cnf
文件中添加skip-grant-tables。这里注意一下:我的skip-grant-tables放到了文件最后。
skip-grant-tables:的作用就是跳过了mysql的用户验证
然后直接输入mysql,不需要带任何登录参数直接回车就可以登陆上数据库;
2.重启mysql
,service mysqld restart
重启之后我们直接输入mysql即可进入mysql数据库,因为我们已经跳过了mysql数据库的用户验证。
3.使用mysql数据库
使用命令:user mysql;
4.show tables查看所有表
会发现有个user表,这里存放的就是用户名,密码,权限等等账户信息
mysql> show tables; +---------------------------+ | Tables_in_mysql | +---------------------------+ | columns_priv | | db | | engine_cost | | event | | func | | general_log | | gtid_executed | | help_category | | help_keyword | | help_relation | | help_topic | | innodb_index_stats | | innodb_table_stats | | ndb_binlog_index | | plugin | | proc | | procs_priv | | proxies_priv | | server_cost | | servers | | slave_master_info | | slave_relay_log_info | | slave_worker_info | | slow_log | | tables_priv | | time_zone | | time_zone_leap_second | | time_zone_name | | time_zone_transition | | time_zone_transition_type | | user | +---------------------------+ 31 rows in set (0.00 sec)
5.查看账户信息
执行下面的命令,可以查看用户的账户信息。
select user,authentication_string from user;
从这里我们可以看到mysql数据库中的密码是加密的,不可逆的。一旦忘记了就找不回来了的。
6.修改root用户的密码
我们可以执行下面的命令修改root用户的密码:
update mysql.user set authentication_string=password('your password') where user='root';
7.修改密码之后,删除所有权限
flush privileges;
8.退出数据库
exit
9.恢复/etc/my.cnf文件
恢复/etc/my.cnf
,将skip-grant-tables
删除或者注释掉。
10.重启mysql
,service mysqld restart
service mysqld restart
到此为止我们就解决了mysql安装之后登录不知道密码的问题。现在一切都正常了。
11.验证一下是否成功解决了登录问题
# rpm -qa|grep -i mysql
可以看到已经完美的解决了。一路下来还真不容易啊。
解决登录问题中的代码整理:
# vim /etc/my.cnf //修改配置 skip-grant-tables 加入到my.cnf 文件的最后 # service mysqld restart //修改配置后重启mysql服务 # mysql //跳过用户验证后,直接就能登录 mysql> use mysql; //切换数据库 mysql> show tables; //查看所有表 mysql> select user,authentication_string from user; //查看权限信息 mysql> update mysql.user set authentication_string=password('your password') where user='root'; //修改密码 mysql> flush privileges; //刷新让修改生效 mysql> exit //退出mysql [root@iz2ze6adlpez0gy7j13vrmz ~]# vim /etc/my.cnf //还原my.cnf文件配置,去掉最后的skip-grant-tables [root@iz2ze6adlpez0gy7j13vrmz ~]# cat /etc/my.cnf //查看是否还原成功 [root@iz2ze6adlpez0gy7j13vrmz ~]# service mysqld restart //重启mysql服务 [root@iz2ze6adlpez0gy7j13vrmz ~]# mysql -uroot -proot //使用修改的密码登录
6.解决远程客户端无法连接MySQL数据库
现在我们想要在本地,远程访问我们阿里云服务器上的mysql数据库。我使用的是navicat 软件,但是发现一直连接不上。
出现这个问题的原因是因为:我的实例是专有网络类型。要想能够远程访问,需要对外开放MySQL的端口3306.
下面演示如何对外开放3306端口。
配置完成之后,我再次去尝试远程连接MySQL数据库。