# MySQL部署
### 环境
1. Ubuntu 18.04
2. MySQL 8.0.16
### 安装MySQL
1. 从官网下载mysql-apt-config.deb安装配置包
https://dev.mysql.com/downloads/repo/apt/
如: mysql-apt-config_0.8.13-1_all.deb
2. 开始安装
```shell
dpkg -i mysql-apt-config_0.8.13-1_all.deb
```
选择MySQL8,OK
```
apt update
apt install mysql-server
```
输入root密码,加密方式选择Legacy Authentication Method
3. 验证安装是否成功
```shell
service mysql status
mysql -u root -p
```
4. 查看mysql字符集
```shell
mysql> show variables like '%char%';
```
5. 设置 mysql 数据库表大小写不敏感
mysql 在Windows下不区分大小写,但是在Linux下默认是区分大小写的
查看当前配置(区分大小写)
```shell
mysql> show variables like '%case%';
```
| Variable_name | Value | 说明 |
| ---------------------- | ----- | ------------------------------------------------------------ |
| lower_case_file_system | OFF | 表示当前系统文件是否大小写敏感,只读参数,无法修改 |
| lower_case_table_names | 0 | 表示表名是否大小写敏感,可以修改
lower_case_table_names = 0时,mysql会根据表名直接操作,大小写敏感。
lower_case_table_names = 1时,mysql会先把表名转为小写,再执行操作。 |
mysql8 如果数据库已经初始化则已经不能通过修改配置文件使大小写不敏感了,只能清空数据库文件,然后修改配置文件,再初始化数据库,才能生效
1. 清空数据库文件
```shell
rm -r /var/lib/mysql
```
2. 修改配置文件
```shell
vi /etc/mysql/mysql.conf.d/mysqld.cnf
```
末尾添加 lower_case_table_names=1
3. 初始化数据库
```shell
mysqld --initialize
# 然后授权数据库数据给mysql用户
chown -R mysql:mysql /var/lib/mysql
```
4. 登陆数据库,修改root密码,临时密码在日志文件里面找 /var/log/mysql/error.log
```shell
mysql -u root -p
mysql>ALTER USER "root"@"localhost" IDENTIFIED BY "XCH666xch!";
```
6. mysql数据库最大连接数修改
1. 查看当前连接数
```shell
mysql -uroot -pXCH666xch! -e 'show status' | grep -i Threads
```
Threads_running 2 表示当前连接数为2
2. 查看最大连接数
```shell
mysql -uroot -pXCH666xch! -e 'show variables' | grep max_connections
```
3. 临时修改最大连接数,服务重启会失效
```shell
mysql> set GLOBAL max_connections=300
```
4. 永久修改
```shell
vi /etc/mysql/mysql.conf.d/mysqld.cnf
# 末尾添加 max_connections=500
# 重启mysql服务
```
7. mysql远程访问
```shell
mysql> use mysql;
mysql> select user,host from user;
```
看到root用户只允许localhost(即本地)访问,修改为 % ,%表示所有机器(临时处理)
```shell
mysql> update user set host='%' where user='root';
```
重启mysql服务
```shell
service mysql restart
```