0%

MySQL安装

MySQL安装

MySQL在MAC下安装

下载

1
brew install mysql

mysql.server 在support-files下

启动服务

1
mysql.server start

windows启动命令

1
net start mysql

默认情况下没有密码,直接就可以使用root登录

设置安全认证

1
mysql_secure_installation

停止服务

1
mysql.server stop

MySQL在Linux下安装

下载压缩包,解压之后放到/usr/local目录下,目录名称修改为mysql

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#创建数据目录
mkdir /usr/local/mysql/data

# 创建mysql用户、mysql组,并将该目录权限
groupadd mysql
useradd -r -g mysql mysql
chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql
# 切换到bin目录下
cd /usr/local/mysql/bin
# 进行安装 此时会生成一个root用户的密码
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

# 创建软链接
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql

# 启动mysql
service mysql start

# 使用安装时生成的密码登录之后,进行密码修改
set password for root@localhost = password('123456');

# 开放远程连接
use mysql;
update user set user.Host='%' where user.User='root';
flush privileges;

MySQL在windows下安装

下载压缩包,解压后在bin目录的同级目录下创建my.ini

配置环境变量MYSQL_HOME为mysql的下载目录,设置Path追加%MYSQL_HOME\bin%

之后执行

1
mysqld --install 

该命令正常应该返回Service successfully installed
如果返回Install/Remove of the Service Denied说明没有权限,需要使用管理员身份打开命令行,然后再执行该命令

如果执行报xxx.dll不存在,可以下载DirectX修复工具来进行修复dll

之后执行

1
mysqld --initialize

此时会在my.ini中配置的basedir下生成mysql文件。默认密码在所配置的datadir目录下的电脑名.err文件中,使用该默认生成的密码来进行登录

先开启mysql服务

1
net start mysql

进入mysql

1
2
mysql -uroot -p
输入生成的默认密码

进入之后把密码改掉

1
2
flush privileges;
set password for root@localhost = password('123456');

退出之后,使用新改的密码123456就可以登录了

配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# [mysqld] 组中包含了mysqld服务启动时的参数
[mysqld]
datadir=/usr/local/mysql/data
# 端口号
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
# 指定mysql允许的最大连接进程数。经常出现too many connections的错误,可增加该值
max_connections=400
innodb_file_per_table=1
character_set_server=utf8
# linux和unix环境下,可以不通过tcp/ip网络连接而直接使用unix socket连接
socket = /tmp/mysql.sock
# 不使用域名解析,如果配置了表示连接方式要使用ip,否则无法连接
skip-name-resolve
# 避免mysql的外部锁定
skip-external-locking
# back_log表示在mysql暂时停止响应新请求之前,短时间内的多少请求可以被存到堆栈中。如果系统在短时间内有很多连接,需要增大该值
back_log=384
#用于MyISAM表索引的缓冲区大小,对MyISAM表性能影响较大
key_buffer_size=384M
#在网络传输中一次消息传输量的最大值,为1024的整数倍,单位字节
max_allowed_packet=4M
# 设置mysql每个线程的堆栈大小
thread_stack=256K
# 表高速缓存的大小,当mysql访问一个表时,如果在mysql表缓冲区中还有空间,这个表就被打开并放入表缓冲区,可以加快访问表的内容。可以查看数据库运行峰值的open_tables和opened_tables,用来判断是否需要增加table_cache的值。如果open_tables接近table_cache的时候,并且opened_tables这个值在逐步增加,就要考虑增加这个值了
table_cache=614K
# 查询排序所用的缓冲区大小
sort_buffer_size=6M
# 查询操作所能使用的缓冲区大小
read_buffer_size=4M
# 联合查询操作所使用的缓冲区大小
join_buffer_size=8M
# 设置ThreadCache池中可以缓存的连接线程最大数量
thread_cache_size=64
# 查询缓冲区大小。当qcache_lowmem_prunes非常大时,表示经常出现缓冲不够的情况;qcache_free_blocks非常大时,说明缓冲区中的碎片非常多
query_cache_size=64M
#用于内存临时表的最大值,如果超过该值,会将临时表写入磁盘
tem_table_size=256M
#设置每台主机的连接请求异常的最大次数,超过该次数,mysql服务器将禁止该host的连接请求,可以通过flush hosts命令来清空此host的相关信息
max_connect_errors=1000
#一个请求的最大连接时间
wait_timeout=10
#一般取为逻辑cpu的两倍
thread_concurrency=8
#彻底关闭TCP/IP连接方式,如果是远程连接不要使用该配置
skip-networking


[mysql]
default-character-set=utf8

命令

MySQL登录命令

1
2
3
4
5
6
7
8
9
mysql -u 用户名 -p 密码 -P 端口号 -h 服务器ip

-----------
-u/-user 用户名
-p 密码
-h/-host 服务器ip或主机名
-P/-port 端口号
-default-character-set 字符集
databasename 该参数不是命令行选项,而是打算使用的数据库

重要命令

  • clear 简写为\c,放弃正在输入的命令
  • help 简写\h,显示帮助命令
  • quit或exit 简写\q,退出mysql命令行
  • status 简写\s,查看mysql服务器的状态信息
  • tee [filename] 简写\T [f],把输入输出记录到指定文件中
  • notee 简写\t,停止使用tee功能
  • use db 简写\u db,指定使用数据库
  • source filename 简写 \. filename,读取并执行给定文件中的sql命令
  • show processlist 查看所有活跃的进程
  • show privileges 显示MySQL服务器支持的系统特权列表

欢迎关注我的其它发布渠道