CentOS7默认数据库是mariadb, 但是 好多用的都是mysql ,但是CentOS7的yum源中默认好像是没有mysql的。
上一篇安装的是5.6的但是我想安装5.7的 yum安装是最简单的 尝试过编译安装各种问题,最后就决定用yum。
(经过一段时间的学习又写了一篇用源码安装mysql5.7.22的 点击打开链接)
1.卸载 先停掉mysql进程 没有安装过的可以直接跳过
pkill -9 mysqld
rpm -qa|grep -i mysql
用命令 yum -y remove
yum -y remove mysql-community-client-5.6.38-2.el7.x86_64
卸载不掉的用 rpm -ev
依次卸载 直到没有
2.下载mysql的repo源 这个安装的mysql5.7.20 /**纠正一下,这源下载的是最新的版本 ****/
[root@localhost ~]# cd /usr/local/src/
[root@localhost src]# wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
[root@localhost src]# rpm -ivh mysql57-community-release-el7-8.noarch.rpm
[root@localhost src]# yum -y install mysql-server
(也可以指定安装目录 yum --installroot=/usr/local/mysql --releasever=/ -y install mysql-server )我没试,这样装环境变量配置都不用你管,装上直接启动就行。安装路径是默认的。
一路 y
根据步骤安装就可以了,
默认配置文件路径:
配置文件:/etc/my.cnf
日志文件:/var/log/var/log/mysqld.log
服务启动脚本:/usr/lib/systemd/system/mysqld.service
socket文件:/var/run/mysqld/mysqld.pid
配置 my.cnf vim /etc/my.cnf
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
server_id = 1
expire_logs_days = 3
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid不过安装完成后,密码为随机密码,需要重置密
注: 修改datadir、log: 改变 某个文件夹或文件所属的用户和组(此文中用不到)
[root@mysql01 local]# chown -R mysql:mysql /usr/local/mysql/
4. 启动mysql服务
service mysqld restart(启动mysql服务:systemctl start mysqld)
重置密码,远程访问
[root@localhost ~]# grep "password" /var/log/mysqld.log
可以看到 输入 mysql -u root -p
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
首先,修改validate_password_policy参数的值
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)
alter user 'root'@'localhost' identified by 'Root!!2018';
最后记得刷新权限;
flush privileges;
设置用户 root 可以在任意 IP 下被访问:
grant all privileges on *.* to root@"%" identified by "新密码";
设置用户 root 可以在本地被访问:
grant all privileges on *.* to root@"localhost" identified by "新密码";
使授权立刻生效
flush privileges;
重启mysql,service mysqld restart。
远程访问设置
创建一个普通用户 sa ,密码是123456
CREATE USER 'sa'@'%' IDENTIFIED BY '123456';
给这个用户授予 SELECT,INSERT,UPDATE,DELETE 的远程访问的权限,这个账号一般用于提供给实施的系统访问
GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'sa'@'%';
创建一个管理员用户 admin 账号 ,密码是 123456
CREATE USER 'admin'@'%' IDENTIFIED BY '123456';
给这个用户授予所有的远程访问的权限。这个用户主要用于管理整个数据库、备份、还原等操作。
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';
设置用户 root 可以在任意 IP 下被访问:
grant all privileges on *.* to root@"%" identified by "新密码";
设置用户 root 可以在本地被访问:
grant all privileges on *.* to root@"localhost" identified by "新密码";
使授权立刻生效
flush privileges;
阿里云服务器安全组设置
ERROR 3009 (HY000): Column count of mysql.user is wrong. Expected 45, found 43. Created with MySQL 5
2017年05月19日 14:28:26 阅读数:13995 标签: mysql 更多
个人分类: mysql
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33350186/article/details/72528810
错误是由于你曾经升级过数据库,升级完后没有使用
mysql_upgrade升级数据结构造成的。
解决办法:
使用mysql_upgrade命令
root@localhost ~]# mysql_upgrade -u root -p 13456