MySQL是一个关系型数据库管理系统。
由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
[mysqld]datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1 ← 找到这一行,在这一行的下面添加新的规则,让MySQL的默认编码为UTF-8
default-character-set = utf8 ← 添加这一行
然后在配置文件的文尾填加如下语句:
[mysql]
default-character-set = utf8
然后我就直接启动mysql了,还以为是Ubuntu的那样呢,安装后自动启动,可是centos不一样,服务没有启动所以就抱错了。
复制代码代码如下:
[root@fsailing1 init.d]# mysql -u root
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
这个错误之前遇到过,就是因为错误或者其他的什么原因,mysql服务器没有启动造成的。
接着启动mysql服务:
复制代码代码如下:
root@fsailing1 init.d]# /etc/rc.d/init.d/mysqld start
启动 MySQL: [确定]
[root@fsailing1 init.d]# ps -ef |grep mysql
root 1949 1 0 22:21 pts/100:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --user=mysql
mysql 2002 1949 1 22:21 pts/100:00:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mysqld/mysqld.pid --skip-external-locking --socket=/var/lib/mysql/mysql.sock
root 2020 1101 0 22:21 pts/100:00:00 grep mysql
启动方式有很多种:service方式service mysqld start 和安全方式:/usr/bin/mysqld_safe &
通过启动服务的后缀我们可以清楚的看到,数据库放在那里,错误日志在哪里,
完事之后,要看看字符集的问题(这个问题至今我还没有搞清楚呢)。是否匹配:
复制代码代码如下:
mysql>show variables like 'character%'
+--------------------------+----------------------------+
| Variable_name| Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results| latin1 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
这种情况是不行的,我们只是改变了服务器的字符集,没有改变客户端的字符集。
修改my.cnf文件后,重启mysql服务器后得知:
复制代码代码如下:
mysql>show variables like 'character%'
+--------------------------+----------------------------+
| Variable_name| Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results| utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
这样就算是完成了,字符集的配置了。然后呢就是密码和授权问题了。
查看用户密码:
复制代码代码如下:
mysql>select host, user ,password from user
+-----------+------+----------+
| host | user | password |
+-----------+------+----------+
| localhost | root | |
| fsailing1 | root | |
| 127.0.0.1 | root | |
| localhost | | |
| fsailing1 | | |
+-----------+------+----------+
5 rows in set (0.00 sec)
这里用户和密码有的是空的,怪不得不需要任何验证都能够登录到服务器上去,这是很不安全的。所以要删除这些不安全的用户
复制代码代码如下:
mysql>delete from user where user=''
Query OK, 2 rows affected (0.00 sec)
mysql>select host, user ,password from user
+-----------+------+----------+
| host | user | password |
+-----------+------+----------+
| localhost | root | |
| fsailing1 | root | |
| 127.0.0.1 | root | |
+-----------+------+----------+
3 rows in set (0.00 sec)
然后是设置现有的用户密码:这里可以update,set都行。
复制代码代码如下:
mysql>update user set password='123' where host='localhost'
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql>select host, user ,password from user
+-----------+------+----------+
| host | user | password |
+-----------+------+----------+
| localhost | root | 123 |
| fsailing1 | root | |
| 127.0.0.1 | root | |
+-----------+------+----------+
3 rows in set (0.00 sec)
这里我一看傻眼了,没有经过md5码加密呢,算了这里还只能用set进行设置密码呢。
复制代码代码如下:
mysql>set password for root@localhost=password('123')
Query OK, 0 rows affected (0.00 sec)
mysql>select host, user ,password from user
+-----------+------+------------------+
| host | user | password |
+-----------+------+------------------+
| localhost | root | 773359240eb9a1d9 |
| fsailing1 | root | |
| 127.0.0.1 | root | |
+-----------+------+------------------+
3 rows in set (0.00 sec)
到这里该做的基本上就算是完事了。
---------------------------------我只是搬运工
1、解压MySQL压缩包将下载的MySQL压缩包解压到自定义目录下,解压目录是:
"D:\Program Files\mysql-5.7.11-winx64"
将解压目录下默认文件 my-default.ini 拷贝一份,改名 my.ini
复制下面的配置信息到 my.ini 保存
#如果没有my-default.ini,可新建my.ini或者从其他地方中获取
[client]
port=3306
default-character-set=utf8
[mysqld]
port=3306
character_set_server=utf8
#解压目录
basedir=D:\Program Files\mysql-5.7.11-winx64
#解压目录下data目录
datadir=D:\Program Files\mysql-5.7.11-winx64\data
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[WinMySQLAdmin]
D:\Program Files\mysql-5.7.11-winx64\bin\mysqld.exe
2、添加环境变量
*** 作如下:
1)右键单击我的电脑->属性->高级系统设置(高级)->环境变量
点击系统变量下的新建按钮
输入变量名:MYSQL_HOME
输入变量值:D:\Program Files\mysql-5.7.11-winx64
#即为mysql的自定义解压目录。
2)选择系统变量中的Path
点击编辑按钮
在变量值中添加变量值:%MYSQL_HOME%\bin
注意是在原有变量值后面加上这个变量,用隔开,不能删除原来的变量值
3、 1)从控制台进入到MySQL解压目录下的 bin 目录下:
2)输入服务安装命令:
1. mysqld --console
2. mysqld --initialize
3. mysqld install
安装成功后会提示服务安装成功。
#注: #执行这几步,是因为在MySQL5.7.9中没有data文件夹,需要用这几个命令产生data文件夹
#移除服务命令为:mysqld remove
4、启动MySQL服务
方法一:
启动服务命令为:net start mysql
方法二:
打开管理工具 服务,找到MySQL服务。
通过右键选择启动或者直接点击左边的启动来启动服务。
5、修改 root 账号的密码
1. 修改MySQL的配置文件(my.ini),在[mysqld]下添加一行skip-grant-tables
2. mysql 重启后,即可直接用 mysql -u root -p 进入(此时密码为空)
3. mysql>update mysql.user set authentication_string=password('123qaz') where user='root' and Host = 'localhost'
4. mysql>flush privileges
5. mysql>quit
6. 将/etc/my.cnf文件还原(删除skip-grant-tables这一行),重新启动 mysql
7. 这个时候可以使用 mysql -u root -p '123qaz' 进入了
8. mysql>SET PASSWORD = PASSWORD('123456')设置新密码
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)