Ubuntu16.04 MySQL入门总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lixujie666/article/details/89382280

1、安装MySQL

$ sudo apt-get install mysql-server mysql-client
$ sudo mysql_secure_installation  #运行MySQL初始化安全脚本
# mysql_secure_installation脚本设置的东西有:更改root密码、移除MySQL的匿名用户、禁止远程登录、删除test数据库、重新加载权限表。

2、常用基本命令语句

登录:$ mysql -h 主机名 -u 用户名 -p
退出登录: Ctrl+D

$ mysql -u root -p
mysql> show databases;
mysql> use mysql;
mysql> show tables;
mysql> show columns from user;
mysql> select user,host from user;  #查看所有用户

创建新的用户:

mysql> create user 'username'@'hostname' identified by 'password';
# 其中,hostname可以是localhost、%、或者其他主机的IP,'%'表示任何主机上的用户,可进行远程登录,此时用户没有权限
# 如果出现错误 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
# 则运行以下命令查看密码级别
mysql> select @@validate_password_policy;
mysql> select @@validate_password_length;
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=3;
# 像这样设置密码的规则,也可以修改用户的密码,例如:
mysql> set password for 'root'@'localhost' = password('123');
mysql> set password for 'jay'@'%' = password('123');
mysql> set password = password('123');
# Windows用户首次登录需要重置密码
mysql> ALTER USER 'root'@'localhost' identified by '123456';

设置用户权限:

用户权限包括: select,update,delete,insert(表数据)、create,alter,drop(表结构)、references(外键)、create temporary tables(创建临时表)、index(操作索引)、create view,show view(视图)、create routine,alert routine,execute(存储过程)、all,all privileges(所有权限)

mysql> show grants;  #查看当前用户(自身)权限
mysql> show grants for 'username'@'hostname';  #查看指定用户权限
mysql> grant select,insert,update,delete on database.table to 'username'@'hostname';  #给用户设置指定数据库表格的指定操作权限
mysql> grant all on *.* to 'username'@'hostname';  #给用户设置所有表格的所有操作权限
mysql> revoke all on *.* from  'username'@'hostname';  #撤销所有权限

数据库基本操作:

mysql> create database test;  #创建数据库
mysql> use test;
mysql> create table students(id INT, name VARCHAR(20), email VARCHAR(20), 学历 VARCHAR(20));  #创建表格
mysql> insert into students(id,name,email,学历) 
	-> values(1,'张三','[email protected]','硕士研究生'),
	-> (2,'李四','[email protected]','硕士研究生');  #插入数据
# 如果插入中文时提示错误:Incorrect string value,则需要将当前数据库设置为utf8编码,操作方式如下
mysql> set character_set_client = utf8;
mysql> set character_set_server = utf8;
mysql> set character_set_connection = utf8;
mysql> set character_set_database = utf8;
mysql> set character_set_results = utf8;
mysql> set collation_connection = utf8_general_ci;
mysql> set collation_database = utf8_general_ci;
mysql> set collation_server = utf8_general_ci;
mysql> show variables like '%char%';  #查看修改后的编码格式
mysql> select * from students;  #查询表格内容
mysql> update students set email='[email protected]' where name='李四';
mysql> delete from students where name = '李四';  #删除表格中指定部分的内容
mysql> truncate table students;  #清空表,删除表中的所有数据,但保留表的结构
mysql> drop table students;  #彻底删除表
mysql> drop database test;  #删除数据库

远程登录:

# 首先确保两台主机之间可进行网络通信,然后查看MySQL的3306端口是否对外开放
$ netstat -an | grep 3306
# 如果对外开放则显示 tcp6    0    0 :::3306    :::*    LISTEN
# 如果不对外开放则显示 tcp    0    0 127.0.0.1:3306    0.0.0.0:*    LISTEN
# 此时需要修改mysqld.cnf文件
$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 将 bind-address		= 127.0.0.1 这一行注释掉,然后重启MySQL再进行远程登录
$ sudo /etc/init.d/mysql restart
$ mysql -h 192.168.1.100 -u jay -p

删除用户:

mysql> DROP USER ‘username’@‘hostname’;  #或者
mysql> DELETE FROM mysql.user WHERE user='username' AND host='hostname';  #然后刷新权限
mysql> FLUSH PRIVILEGES;

3、C++操作数据库

博主参考一些大神的博客整理了一个封装了部分MySQL函数的C++类,可从我的GitHub下载,运行示例会得到如下结果:

运行该示例之前你要先创建一个名叫“test”的数据库,且test库中至少有一个名叫“students”的表,不然可能会与上述结果有出入。还有,博主这里root用户的密码为123,如果不一样则需要修改,当然你也可以登录其他用户,不过要注意其他用户是否有示例中的操作权限。

参考文献:
[1] https://blog.csdn.net/u014453898/article/details/55064312
[2] https://dev.mysql.com/doc/refman/5.7/en/create-user.html
[3] https://www.cnblogs.com/gavin110-lgy/p/5773981.html
[4] https://www.cnblogs.com/47088845/p/5706496.html

猜你喜欢

转载自blog.csdn.net/lixujie666/article/details/89382280
今日推荐