本文共 4944 字,大约阅读时间需要 16 分钟。
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.log2020-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 -pEnter password: Checking if update is needed.Checking server version.Running queries to upgrade MySQL server.Checking system database.mysql.columns_priv OKmysql.db OKmysql.engine_cost OKmysql.event OKmysql.func OKmysql.general_log OKmysql.gtid_executed OKmysql.help_category OKmysql.help_keyword OKmysql.help_relation OKmysql.help_topic OKmysql.innodb_index_stats OKmysql.innodb_table_stats OKmysql.ndb_binlog_index OKmysql.plugin OKmysql.proc OKmysql.procs_priv OKmysql.proxies_priv OKmysql.server_cost OKmysql.servers OKmysql.slave_master_info OKmysql.slave_relay_log_info OKmysql.slave_worker_info OKmysql.slow_log OKmysql.tables_priv OKmysql.time_zone OKmysql.time_zone_leap_second OKmysql.time_zone_name OKmysql.time_zone_transition OKmysql.time_zone_transition_type OKmysql.user OKUpgrading the sys schema.Checking databases.sys.sys_config OKUpgrade process completed successfully.Checking if update is needed.
转载地址:https://blog.csdn.net/zzztimes/article/details/116792149 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!