1. Ubuntu中的apt命令
apt 命令不仅可以更新软件包列表索引、执行安装新软件包、升级现有软件包,还能够升级整个 Ubuntu 系统(apt 是 Debian 系操作系统的包管理工具)。与更专业的 APT(Advanced Packaging Tool) 工具 apt-get 和 apt-cache 相比,apt用起来更简单,用户体验更好。常见用法如下:
// 搜索可用安装包
$ [sudo] apt search mysql
// 更新包索引文件
$ [sudo] apt update
// 安装包
$ [sudo] apt install nginx
// 安装指定版本的包
$ [sudo] apt install vim=2:8.0.1453-1ubuntu1
// 安装本地的 deb 包文件
$ [sudo] apt install name.deb
// 这种方法会自动下载并安装依赖的包。
// 安装系统中有更新的包
// upgrade 命令会升级已安装的包,同但不移除任何包。它的目标是确保可能的侵入式升级最小化:
$ [sudo] apt update
$ [sudo] apt upgrade
// 删除包
// 通过下面两个命令可以删除使用 apt install 安装的包
// 其中 remove 命令会保留配置文件,而 purge 命令会把配置文件一起删除!
$ [sudo] apt remove nmap
$ [sudo] apt purge nmap
2. 安装mysql
可以在ubuntu的命令行中直接执行apt命令:
$ apt search mysql
会显示mysql相关的安装包的信息,
输入 $ apt install mysql- ,此时,按tab键会有提示信息如下:
执行
$ apt install mysql-server
即安装完成,可以只安装mysql-server,然后通过命令行进行一系列查看、配置、操作表等一系列动作即可。如果你使用的操作系统有UI界面,你也可以安装相应的可视客户端,类似于MySQLWorkBench等。
3. 修改mysql的root密码
在用apt安装mysql的过程中,全部自动安装,中间并没有让输入密码等。安装完后,由于没有设置密码,用root身份,通过命令:
$ mysql -uroot -p
可以直接登录(如果让输入密码,直接点回车即可)。
注意:登录之后虽然可以在终端进行查看、修改、配置等一系列操作,但是,在本地web服务中登录mysql过程中会报错。
我们用SpringBoot打包web服务中,application.properties文件中关于数据库的配置如下:
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/todo?charset=utf8mb4&useSSL=false&serverTimezone=GMT%2b8spring.datasource.username=root
spring.datasource.password=6666666
具体报错信息为:
com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization.
java.sql.SQLException: Access denied for user 'root'@'localhost'
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129) ~[mysql-connector-java-8.0.19.jar!/:8.0.19]
原因是:mysql的root账户没有设置密码。
修改root密码步骤:
无密码登录mysql
显示所有数据库文件
mysql> show databases;
- 使用mysql数据库文件
mysql> use mysql;
- 使用sql语句修改root密码
mysql> update user set authentication_string=PASSWORD("这里输入你要改的密码") where User='root';
- 更新系缓存密码
mysql> update user set plugin="mysql_native_password";
- 刷新操作权限
mysql> flush privileges;
- 退出
mysql> quit;
此时,在试一遍mysql -uroot -p,登录,故意将密码输入错误,即会提示
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
则root密码修改成功!
4. 修改数据库文件及表的编码格式
当我们通过SpringBoot中的接口想数据库中添加数据时,添加数据为英文时正常,但添加数据含中文时,所记录的数据为乱码。本地SpringBoot的application.properties文件中关于数据持久化的格式配置为:
spring.jpa.properties.hibernate.hbm2ddl.auto=update
//spring.jpa.properties.hibernate.hbm2ddl.auto=create
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
//spring.jpa.show-sql=true//测完关闭
spring.jpa.open-in-view=truespring.http.encoding.force=true
spring.http.encoding.charset=UTF-8
spring.http.encoding.enabled=true
server.tomcat.uri-encoding=UTF-8
均为UTF-8格式。
登录mysql,其中todo为我们自建的数据库文件,
mysql> show tables;
mysql> use todo;
mysql> show tables;
mysql> select * from t_todo;
mysql> show variables like 'character%';
可见本地 mysql server 数据使用的编码为"latin1",我们需要将其改为utf8 。
cd /etc/mysql/mysql.conf.d
vim mysqld.cnf
添加如下变量:
character-set-server = utf8
保存并退出(先esc 再:wq!)。
再次 mysql> show variables like 'character%';,可见编码已改。
我们再次通过web服务接口向数据库todo添加数据,发现从todo中获取的数据仍是乱码,这是因为,我们虽然改了mysql server的数据编码格式,但是todo这个库是之前建的,其表中的数据格式仍为"latin1"。
通过mysql> show create table todo;命令可查看:
修改表的数据编码格式:
mysql> ALTER TABLE t_todo CONVERT TO CHARACTER SET utf8;
至此,从安装到数据编码都已完成!
5. mysql常用命令
// 登录
mysql -u root -p
// 关闭、启动、重启
[sudo] service mysql stop
[sudo] service mysql start
[sudo] service mysql restart
// 退出
mysql> exit
mysql> quit
// 查看所有db文件
mysql> show databases;
// 选择db文件
mysql> use name;
// 创建db文件
mysql> create database name
// 删除db文件
mysql> drop database name
//// 表操作
// 列出所有表
mysql> show tables
// 创建一个名为t_name的新表:
create table t_name(
id int(10) not null auto_increment primary key,
name varchar(40),
pwd varchar(40)
) charset=gb2312;
// 删除名为t_name的数据表
drop table t_name
// 显示名为t_name的表的数据结构
describe t_name
或
show columns from t_name
// 将表t_name中的记录清空
delete from t_name
// 显示表t_name中的记录
select * from t_name
// 复制表结构
mysqldump -uUSER -pPASSWORD --no-data DATABASE TABLE > table.sql
// 更改表得的定义把某个栏位设为主键
ALTER TABLE t_name ADD PRIMARY KEY (col_name)
// 把主键的定义删除
ALTER TABLE t_name DROP PRIMARY KEY (col_name)
// 在t_name表中增加一个名为col_name的字段且类型为varchar(20)
alter table t_name add col_name varchar(20)
// 在t_name中将col_name字段删除
alter table t_name drop col_name
// 修改字段属性,注若加上not null则要求原字段下没有数据
alter table t_name modify col_name varchar(40) not null
(注,SQL Server200下的写法:Alter Table t_name Alter Column col_name varchar(30) not null)
// 修改表名:
alter table t_name rename to new_tab_name
// 修改字段名:
alter table t_name change old_col new_col varchar(40)
(注:必须为当前字段指定数据类型等属性,否则不能修改)
// 用一个已存在的表来建新表,但不包含旧表的数据
create table new_t_name like old_t_name
//// 数据备份与回复:
执行外部的sql脚本:
当前数据库上执行:mysql < input.sql
指定数据库上执行:mysql [表名] < input.sql
数据传入命令: load data local infile "[文件名]" into table [表名]
备份数据库:(dos下)
mysqldump --opt school>school.bbb
mysqldump -u [user] -p [password] databasename > filename (备份)
mysql -u [user] -p [password] databasename < filename (恢复)
6. 卸载mysql
1)查看MySQL的依赖项
dpkg --list|grep mysql
2)卸载 mysql-common
[sudo] apt remove mysql-common
3)卸载 mysql-server
[sudo] apt autoremove --purge mysql-server
4)清除残留数据
dpkg -l|grep ^rc|awk '{print$2}'|sudo xargs dpkg -P
5)再次查看MySQL的剩余依赖项(一般这时候就卸载干净了)
dpkg --list|grep mysql
6)继续删除依赖项(如果步骤 5还有剩余依赖,则继续 6)
[sudo] apt autoremove --purge mysql-apt-config
参考文章:
https://www.cnblogs.com/huangguojin/p/9510903.html
https://blog.csdn.net/sinat_36811967/article/details/72823902