Linux系统安装mysql步骤

CentOS中默认安装的是MariaDB,安装完MySQL之后会覆盖MariaDB,由于安装MySQL需要添加很多依赖关系,所以这里使用yum安装.

下载MySQL源安装包

[root@localhost ~] wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

安装MySQL源(如果无法安装,先执行该命令:rm -f /var/run/yum.pid)

[root@localhost ~] yum -y install mysql57-community-release-el7-10.noarch.rpm
...........
Running transaction
正在安装    : mysql57-community-release-el7-10.noarch                           1/1 
验证中      : mysql57-community-release-el7-10.noarch                           1/1 
已安装:
mysql57-community-release.noarch 0:el7-10                                           
完毕!

安装MySQL

[root@localhost ~] yum -y install mysql-community-server
..............
作为依赖被安装:
mysql-community-client.x86_64 0:5.7.28-1.el7  mysql-community-common.x86_64 0:5.7.28-1.el7 
作为依赖被升级:
openssl.x86_64 1:1.0.2k-19.el7             openssl-libs.x86_64 1:1.0.2k-19.el7            
postfix.x86_64 2:2.10.1-7.el7             
替代:
mariadb-libs.x86_64 1:5.5.52-1.el7                                                         
完毕!

启动MySQL

[root@localhost ~] systemctl start mysqld.service

查看MySQL运行状态

[root@localhost ~] systemctl status mysqld.service

设置MySQL自启动

[root@localhost ~] systemctl enable mysqld

配置MySQL
在/etc/my.cnf的[mysqld]中增加如下内容:

[root@localhost ~] vim /etc/my.cnf

#不添加则在设置MySQL新密码时会错
validate_password=off
#用于设置MySQL的字符集
character_set_server=utf8
#用于设置MySQL的远程连接
skip-name-resolve

重新启动MySQL

[root@localhost ~] systemctl restart mysqld.service

如果这个步骤失败,查看错误日志:

grep "error" /var/log/mysqld.log
#提示如下错误
[ERROR] unknown variable 'validate_password=off

此时使用重置密码1操作
重置密码1

#进入配置文件,将刚刚添加的语句validate_password=off删除
[root@localhost ~] vim /etc/my.cnf
#在配置文件中添加语句
skip-grant-tables
#保存退出

进入到终端当中,敲入 mysql -u root -p 命令然后回车,当需要输入密码时,直接按enter键,便可以不用密码登录到数据库当中

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
//如果此命令报错,执行下面语句后重试
mysql> flush privileges;

然后再次操作配置文件,删除刚刚那个跳过密码验证的配置即可,此时密码已经设置好,登录时输入刚刚修改的密码即可进入,完成这步后跳过下面的重置密码2操作,继续设置MySQL可以远程访问。

重置密码2:此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:

[root@localhost ~] grep "password" /var/log/mysqld.log

2020-10-17T07:00:52.740835Z 1 [Note] A temporary password is generated for root@localhost: **l0hN)kEXugYv**
2020-10-17T07:14:54.867706Z 3 [Note] Access denied for user 'root'@'localhost' (using password: YES)

登录MySQL

[root@localhost ~] mysql -uroot -p

输入:l0hN)kEXugYv 进入到MySQL

输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

设置MySQL可以远程访问

mysql>grant all privileges on *.* to 'root'@'%' identified by '密码' with grant option;

此时可以使用我们的数据库客户端工具进行远程连接,如果连接不上,重启MySQL后再测试

测试成功后,退出MySQL

mysql> exit;

卸载Yum Repository,否则每次yum操作都会自动更新

[root@localhost ~] yum -y remove mysql57-community-release-el7-10.noarch

测试远程连接,连接未成功,需要再次关闭防火墙,重启MySQL

关闭防火墙:

[root@localhost ~] systemctl  stop  firewalld.service

如果登录数据库操作如下报错,是由于曾经升级过数据库,升级完后没有使用
mysql_upgrade升级数据结构造成的。

EROR 3009 (HY000): Column count of mysql.user is wrong......Plese use mya _ungrae to fx this eror.

执行如下命令即可;

[root@localhost ~]# mysql_upgrade -uroot  -p
Enter password: 
Checking if update is needed.
Checking server version.
Running queries to upgrade MySQL server.
Checking system database.
mysql.columns_priv                                 OK
mysql.db                                           OK
mysql.engine_cost                                  OK
mysql.event                                        OK
mysql.func                                         OK
mysql.general_log                                  OK
mysql.gtid_executed                                OK
mysql.help_category                                OK
mysql.help_keyword                                 OK
mysql.help_relation                                OK
mysql.help_topic                                   OK
mysql.innodb_index_stats                           OK
mysql.innodb_table_stats                           OK
mysql.ndb_binlog_index                             OK
mysql.plugin                                       OK
mysql.proc                                         OK
mysql.procs_priv                                   OK
mysql.proxies_priv                                 OK
mysql.server_cost                                  OK
mysql.servers                                      OK
mysql.slave_master_info                            OK
mysql.slave_relay_log_info                         OK
mysql.slave_worker_info                            OK
mysql.slow_log                                     OK
mysql.tables_priv                                  OK
mysql.time_zone                                    OK
mysql.time_zone_leap_second                        OK
mysql.time_zone_name                               OK
mysql.time_zone_transition                         OK
mysql.time_zone_transition_type                    OK
mysql.user                                         OK
Upgrading the sys schema.
Checking databases.
sys.sys_config                                     OK
Upgrade process completed successfully.
Checking if update is needed.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值