Linux下安装mysql

CentOS7默认数据库是mariadb,配置等用着不习惯,因此决定改成mysql,但是CentOS7的yum源中默认好像是没有mysql的。为了解决这个问题,我们要先下载mysql的repo源。

1.下载mysql的repo源

1
$ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

2.安装mysql-community-release-el7-5.noarch.rpm包

1
$ sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm

安装这个包后,会获得两个mysql的yum repo源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。

3.安装mysql

1
$ sudo yum install mysql-server

根据提示安装就可以了,不过安装完成后没有密码,需要重置密码

4.重置mysql密码

1
$ mysql -u root

登录时有可能报这样的错:ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2),原因是/var/lib/mysql的访问权限问题。下面的命令把/var/lib/mysql的拥有者改为当前用户:

1
$ sudo chown -R root:root /var/lib/mysql

重启mysql服务

1
$ service mysqld restart

接下来登录重置密码:

1
2
3
4
$ mysql -u root  //直接回车进入mysql控制台
mysql > use mysql;
mysql > update user set password=password('123456') where user='root';
mysql > exit;

5.登陆mysql

输入mysql -u+数据库用户 -p+数据库密码

架设数据库用户是root 密码是123,应该是像下面这样才是正确的:

1
mysql -uroot -p123

-u和-p连接数据库用户和密码中间是不能有空格的

6.下面来创建数据库mydatabase

1
create database mydatabase;

这样一个名叫mydatabase的数据库就创建好了

1
show databases; 显示所有数据库列表
1
drop database mydatabase; 删除数据库mydatabase

那么如何退出mysql命令行呢?

在终端输入exit; 知道完全退出mysql命令行为止

7.执行数据库文件

1
source /root/sql/sfm.sql

注意:需先把sql文件放到服务器的一个文件夹中,不能有中文目录,否则执行不了

8. 数据库常用命令

(1) 制定TestDB数据库为当前默认数据库

1
mysql> use TestDB;

(2) 在TestDB数据库中创建表customers

1
mysql> create table customers(userid int not null, username varchar(20) not null);

(3) 显示数据库列表

1
mysql> show databases;

(4)显示数据库中的表

1
mysql> show tables;

(5)删除表customers

1
mysql> drop table customers;

(6)显示customers表的结构

1
mysql> desc customers;

(7) 向customers表中插入一条记录

1
mysql> insert into customers(userid, username) values(1, 'hujiahui');

(8) 让操作及时生效;

1
mysql> commit;

(9) 查询customers中的记录

1
mysql> select * from customers;

(10) 更新表中的数据

1
mysql> update customers set username='DennisHu' where userid=1;

(11) 删除表中的记录

1
mysql> delete from customers;

(12)授予hjh用户访问数据库的权限

1
grant select, insert, update, delete on *.* to hjh@localhost indentified by "123456";

备注:hjh是Linux用户名,123456是访问mysql的密码

(13)采用用户名和密码登录mysql

1
mysql -uhjh -p123456

9.备份数据库

语法:mysqldump -u 用户名 -p 数据库名 >备份成文件.sql

语法:mysqldump -u 用户名 -p 数据库名 表名 >备份成文件.sql

语法:mysqldump -u 用户名 -p 数据库名 表名1 表名2 >备份成文件.sql

例如:

1
mysqldump -usystem -p dba >/opt/mysql_dba_bak.sql//备份dba里面所有表