Ubuntu(Linux)安装及配置MySQL

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键会有提示信息如下:
Ubuntu(Linux)安装及配置MySQL
文章图片

执行
$ 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%2b8
spring.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密码步骤:
  1. 无密码登录mysql
  2. 显示所有数据库文件
    mysql> show databases;
Ubuntu(Linux)安装及配置MySQL
文章图片
  1. 使用mysql数据库文件
    mysql> use mysql;
Ubuntu(Linux)安装及配置MySQL
文章图片
  1. 使用sql语句修改root密码
    mysql> update user set authentication_string=PASSWORD("这里输入你要改的密码") where User='root';
Ubuntu(Linux)安装及配置MySQL
文章图片
  1. 更新系缓存密码
    mysql> update user set plugin="mysql_native_password";
Ubuntu(Linux)安装及配置MySQL
文章图片
  1. 刷新操作权限
    mysql> flush privileges;
Ubuntu(Linux)安装及配置MySQL
文章图片
  1. 退出
    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=true
spring.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 mysql2)卸载 mysql-common [sudo] apt remove mysql-common3)卸载 mysql-server [sudo] apt autoremove --purge mysql-server4)清除残留数据 dpkg -l|grep ^rc|awk '{print$2}'|sudo xargs dpkg -P5)再次查看MySQL的剩余依赖项(一般这时候就卸载干净了) dpkg --list|grep mysql6)继续删除依赖项(如果步骤 5还有剩余依赖,则继续 6) [sudo] apt autoremove --purge mysql-apt-config

【Ubuntu(Linux)安装及配置MySQL】参考文章:
https://www.cnblogs.com/huangguojin/p/9510903.html
https://blog.csdn.net/sinat_36811967/article/details/72823902

    推荐阅读