mysql5.6版本

1.CentOS7系统默认可能会安装MariaDB,因此查询是否已经以rpm方式安装,若有即卸载。
#rpm -e MariaDB

2.安装mysql运行所需依赖软件
#yum install -y gcc gcc-c++ make ncurses-devel autoconf lrzsz

ncurses 字符终端处理库,包括面板和菜单等功能
autoconf //兼容多系统进行make编译

上传 cmake、mysql至服务器
#tar zxvf cmake-2.8.6.tar.gz -C /usr/src
#cd /usr/src/cmake-2.8.6
#./configure
#make && make install
3.编译安装mysql
#tar zxf mysql-5.6.36.tar.gz -C /usr/src
#cd /usr/src/mysql-5.6.36/
#cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all

-DCMAKE_INSTALL_PREFIX //程序安装路径
-DSYSCONFDIR //程序初始化目录,配置文件存放目录
-DDEFAULT_CHARSET //指定字符集
-DDEFAULT_COLLATION //指定字符集校对规则
-DWITH_EXTRA_CHARSETS //支持额外的字符集

官方对相关配置选项的说明:
https://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html
#make && make install

#useradd -M -s /sbin/nologin mysql //创建mysql运行用户和组
4.配置mysql

#chown -R mysql:mysql /usr/local/mysql

#cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf //复制mysql主配置文件到运行目录

初始化数据库,以mysql用户运行初始化脚本并制定mysql数据库运行目录和数据存放目录
#/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
–user //指定运行用户
–basedir //指定安装目录
–datadir //指定数据库数据存放位置

修改属主权限
#chown -R root /usr/local/mysql
#chown -R mysql /usr/local/mysql/data
设置变量环境,方便执行mysql命令,若不设置则只能够使用绝对路径命令执行
#echo “PATH=$PATH:/usr/local/mysql/bin” >> /etc/profile
#. /etc/profile
添加为系统服务,方便控制mysql服务
#cp /usr/local/mysql/support-files/mysql.server /usr/local/mysql/bin/mysqld.sh

#vim /lib/systemd/system/mysqld.service
[Unit]
Description=Mysql Server
After=network.target

[Service]
User=mysql
Type=forking
PIDFile=/usr/local/mysql/data/pillarx1m.pid
ExecStart=/usr/local/mysql/support-files/mysql.server start
ExecStop=/usr/local/mysql/support-files/mysql.server stop

[Install]
WantedBy=multi-user.target //Minimal 或者桌面/graohical.target

#systemctl daemon-reload //重载systemctl守护进程
#systemctl enable mysqld.service //将mysqld服务设置为开机自启

以下两种方法都可查询开机是否启动:
#systemctl list-unit-files | grep mysqld
#systemctl is-enabled mysqld.service

#systemctl start mysqld
#netstat -anpt | grep mysqld //可查看mysql运行状态,端口号为tcp:3306

管理使用mysql数据库
#mysql -u root -p //u指定用户,p指定密码,默认root无密码,回车即可
#mysqladmin -u root -p password //修改密码为root用户密码为123,需要回车输入原密码,默认密码为空
数据库中所有数据存放在/usr/local/mysql/data/中
通过用户登录mysql界面后需要执行mysql操作语句才能够实现管理mysql数据库
每条语句最后应当加上";" 输入语句可以不区分大小写,但是参数必须区分。
登录后可查看说明信息,对数据库进行大概的了解

mysql> exit //退出
mysql> quit //退出

使用mysql数据库
一、查看数据库结构
1.查看当前数据库中有哪些库
mysql> SHOW DATABASES;
默认建立了四个库:test、mysql、information_schema、performance_scheme
mysql:包含了用户认证相关表,及服务启动文件等
information_schema:包含了其他数据库信息,如数据库名或表名,列的数据类型,或访问权限等
performance_schema:是一个虚拟数据库,在select时,从其他数据库获取相应的信息。及收集数据库服务器性能参数
mysql> USE mysql; //切换到mysql库
mysql> SHOW TABLES; //查看当前库中所有表
mysql> DESCRIBE user; //查看user表的结构,需要先切换到mysql库
mysql> DESCRIBE mysql.user; //查看mysql库中user表的内容
2.创建新库
mysql> CREATE DATABASE auth; //新建名为auth的库
当新建完成后,在/usr/local/mysql/data/则会自动创建一个名为auth的目录,
3.创建新表
mysql> USE auth; //切换至库auth
创建一个名称为"users"的表,第一个字段为user_name,不超过16个字符不能为空;
第二个字段为user_passwd,不超过48字符,插入字符时通过mysql函数加密进行加密,并将user_name设置为主键
mysql> CREATE TABLE users (user_id INT NOT NULL,user_name CHAR(16) NOT NULL, user_passwd CHAR(48) DEFAULT ‘’, PRIMARY KEY (user_id));

4.删除数据表和库
mysql> DROP TABLE users; //需要先使用use切换到相应的库
mysql> DROP TABLE auth.users; //删除auth库中的users表
mysql> DROP DATABASE auth; //删除auth库

二、管理表中数据记录
1.插入数据记录,在插入密码时,加入PASSWORD,密码则是加密状态,不加则是原文字
mysql> INSERT INTO users(user_name,user_passwd) VALUES(‘zhangsan’,PASSWORD(‘123456’));
mysql> INSERT INTO users(user_name,user_passwd) VALUES(‘zhangsan’,PASSWORD(‘123456’));
或者
mysql> INSERT INTO users VALUES(‘lisi’,‘123456’);
mysql> INSERT INTO users VALUES(‘lisi’,‘123456’);
2.查询插入的数据
查看包含所有条件的数据
mysql> select * from users; //需要先USE切换库
mysql> select * from auth.users;
特定条件查询:只查看姓名为zhangsan的列
mysql> SELECT user_name FROM auth.users where user_name=‘zhangsan’;
特定条件查询:只查看姓名为zhangsan的所有数据
mysql> SELECT * FROM auth.users where user_name=‘zhangsan’;
特定条件查询:只查看姓名为zhangsan的姓名以及密码的数据
mysql> SELECT user_name,user_passwd FROM auth.users where user_name=‘zhangsan’;

需求:在cd库中创建users1表,列有
‘编号’ 自增量 从1开始,且设置为主键
‘姓名’ 中文字符4个字,不允许为空
'性别’只能有一个中文字符,且不允许为空
'电话号码’11位字符,不允许为空
‘住址’15位中文字符,默认值为’学生宿舍’

mysql> create table users1(user_id int auto_increment not null,user_name varchar(10) not null,user_sex varchar(1) not null,user_phone char(11) not null,user_addr varchar(15) default ‘学生宿舍’,primary key (user_id));

mysql> describe users1\G //以垂直方式查看users1表的列标题

在users1中插入相关数据
mysql> insert into users1(user_name,user_sex,user_phone) values(‘zhangsan’,‘男’,‘13000000001’);

3.修改数据记录
将用户lisi的密码修改为AAAAAA
mysql> UPDATE auth.users SET user_passwd=‘AAAAAA’ WHERE user_name=‘lisi’;
将用户zhangsan1名称修改为accp
mysql> update users set user_name=‘accp’ where user_name=‘zhangsan1’;
修改root用户密码
mysql> UPDATE mysql.user SET password=PASSWORD(‘123456’) WHERE user=‘root’;
mysql> FLUSH PRIVILEGES; //需要刷新用户信息

4.删除数据记录
删除用户lisi信息
mysql> DELETE FROM auth.users WHERE user_name=‘zhangsan’;
查询用户 密码都为空的行,并进行删除,默认可使用user进行登录mysql数据库
mysql> select user,host,password from mysql.user where user=‘user’;
mysql> delete from mysql.user where user=‘’;

三、维护数据库
维护数据库包括用户权限的设置、数据库的备份与恢复
1.数据库用户授权
GRANT 权限列表 ON 库名.表名 TO 用户名@登录来源 [IDENTIFIED BY ‘123456’]
权限列表如下,可用逗号隔开权限:
select:查询
insert:插入
update:修改
delete:删除
all:所有权限等其他权限
用户名为mysql数据库用户名,登录来源为谁能登录,可用设置为192.168.1.1、192.168.1.%等

如下举例为:创建一个zhangsan用户,密码为123456,允许本地登录,权限为:能够查询auth库下的所有表
GRANT select ON auth.* TO zhangsan@localhost IDENTIFIED BY ‘123456’

mysql> GRANT select,update ON auth.* to ‘zhangsan’@‘localhost’ IDENTIFIED BY ‘123456’;
mysql> GRANT all ON mysql.users to ‘zhangsan’@‘localhost’ IDENTIFIED BY ‘123456’;
2.查看用户权限
mysql> SHOW GRANTS FOR ‘zhangsan’@‘localhost’;
3.撤销用户权限
mysql> REVOKE all ON auth.* FROM ‘zhangsan’@‘localhost’; //通过root删除auth.*的所有权限
再次查看权限,已经没有auth库的权限了
mysql> SHOW GRANTS FOR ‘zhangsan’@‘localhost’;

mysql> FLUSH PRIVILEGES;

修改主配置文件实现修改遗忘的密码
[mysqld]
port = 3306
socket = /tmp/mysql.sock
#skip-grant-tables //添加此项在此处,重启服务即可不需要密码登录mysql并进行修改

mysql

mysql> update mysql.user set password = password(‘123456’) where user = ‘root’;

5.7版本修改方法:
update mysql.user set authentication_string=password(‘123456’) where user=‘root’ and Host = ‘localhost’;
退出重启,后进入交互式界面:
alter user ‘root’@‘localhost’ identified by ‘123456’;

update mysql.user set authentication_string=password(‘pillar!123’) where user=‘zabbix’ and Host = ‘localhost’;
alter user ‘zabbix’@‘localhost’ identified by ‘pillar!123’;

报错:
mysql server pid file could not be found
//关闭firewall selinux,查询是否有进程有则kill -9

你可能感兴趣的:(mysql,mysql,数据库,服务器)