centos中mysql 安装以及配置,建库
centos中mysql 安装以及配置,建库
1.检测系统内部有没有安装其他的mysql数据库
rpm -qa | grep mysql
然后如果有的话删除这些mysql yum remove 查出来的所有名字
2.彻底删除系统中mysql的目录
find / -name mysql
将查出的所有目录删掉 rm -rf 查到的路径
3.下载mysql的rpm包
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
4.安装mysql源
yum localinstall mysql57-community-release-el7-8.noarch.rpm
5.重要一步
先尝试安装
yum install -y mysql-community-server
如果可以安装那么安装之后查询mysql版本 mysql -V
显示5.7版本则安装成功
如果安装成立5.6
那么修改mqsql源里面的一些 vi /etc/yum.repos.d/mysql-community.repo :比如要安装5.6版本,将5.7源的enabled=1改成enabled=0。然后再将5.6源的enabled=0改成enabled=1即可。
这里是将5.7的修改为1 5.6的修改为0
# Enable to use MySQL 5.5 [mysql55-community] name=MySQL 5.5 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.5-community/el/7/$basearch/ enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql # Enable to use MySQL 5.6 [mysql56-community] name=MySQL 5.6 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/ enabled=0 ##################################### gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql57-community] name=MySQL 5.7 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/ enabled=1 ####################################### gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql [mysql-tools-preview] name=MySQL Tools Preview baseurl=http://repo.mysql.com/yum/mysql-tools-preview/el/7/$basearch/ enabled=0
再次安装 yum install mysql-community-server
6.启动mysql服务
systemctl start mysqld
7.mysql开启启动
systemctl enable mysqld
8.查看mysql密码
grep 'temporary password' /var/log/mysqld.log
9.如果你什么都没有查到
那么默认密码是没有的
直接进入mysql
mysql -uroot -p
10.修改密码
***注意这里数据库为 mysql5.7 或以上 password 字段修改成了 authentication_string ;
set password = passowowd('你的密码');
如果你在这一步发生错误,那么请退出mysql后使用命令先更新一下数据库
mysql_upgrade -uroot -p
然后再次进入mysql设置root密码即可
如果还是不行的话,就使用下面方法
查看root密码
grep 'temporary password' /var/log/mysqld.log
查看后打开mysql并修改密码
mysql -uroot -p
首次修改密码会提示密码安全等级的错误,因此要先修改安全等级,再次修改才会生效
1、设置安全级别 set global validate_password_policy=0;
2、默认密码为8,可以设置为其他值,最小4位 set global validate_password_length=4;
3、设置root密码 set password for root@localhost = password('新密码');
11.开启mysql的root账户远程访问
- 进入mysql
mysql -uroot -p 输入密码登录
- 选择mysql数据库
use mysql;
- 修改root远程访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
- 更新数据库
FLUSH PRIVILEGES;
注意这个时候防火墙要关闭,或者开放3306端口
二、导入数据库
1、首先建空数据库
mysql>create database abc;
2、导入数据库
方法一:
(1)选择数据库
mysql>use abc;
(2)设置数据库编码
mysql>set names utf8;
(3)导入数据(注意sql文件的路径)
mysql>source /home/abc/abc.sql;
方法二:
mysql -u用户名 -p密码 数据库名 < 数据库名.sql
mysql -uabc_f -p abc < abc.sql
如果安装成功报错
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this st
修改my.cnf配置 sed -i ‘/mysqld/a\skip-grant-tables’ /etc/my.cnf
-
重启mysql
systemctl restart mysqld
-
进入mysql
这次就不需要root密码了
-
use mysql;
-
UPDATE user SET Password = password('newpassword') where User = 'roo
-
刷新权限
flush privileges;
-
退出
quit
-
还原my.cnf配置sed -i 's/skip-grant-tables/#skip-grant-tables/g' /etc/my.cnf
-
再次重启mysql服务
systemctl restart mysqld
1
|
mysql> update user set password=password(“新密码”) where user=”用户名”; |
执行后报错 ERROR 1054(42S22) Unknown column 'password' in ‘field list’
错误的原因是 5.7版本下的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string
所以请使用以下命令:
>mysql -u root -p Enter password: ******** Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 12 Server version: 5.7.18-log MySQL Community Server (GPL) Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> use mysql; Database changed mysql> select User from user; #此处为查询用户命令 +-----------+ | User | +-----------+ | ******* | | mysql.sys | | root | +-----------+ rows in set (0.00 sec) mysql> update user set password=password("*******") where user="*******"; #修改密码报错 ERROR 1054 (42S22): Unknown column 'password' in 'field list' mysql> update mysql.user set authentication_string=password('*******') where user='*******'; #修改密码成功 Query OK, 1 row affected, 1 warning (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 1 mysql> flush privileges; #立即生效 Query OK, 0 rows affected (0.00 sec) mysql> quit Bye n>mysql -u ******* -p #以该用户登录成功. Enter password: ******** ………………………… mysql>