delphi10.3安裝使用mySQL及遇到的問題(01)


1】下載安裝好mySQL環境

2】FDConnection1的設置

3】執行增刪改SQL語句查詢Select語句

4】客戶端連接

5]長文本類型,及SQLITE導出,導入到MySQL

6】遇到過的問題及解決


1】下載安裝好mySQL環境,注意32位/64位。本篇為32位

mysql32位下載鏈接: https://pan.baidu.com/s/1hVS_vbBQUAnMakDdlN07ZQ 提取碼: wx44

MYSQL新手入門篇


 windows版本,32位下載32位的,64位下載64位的

1、下載

MySQL Community Server 5.7.16 
http://dev.mysql.com/downloads/mysql/

2、解壓

如果想要讓MySQL安裝在指定目錄,那么就將解壓后的文件夾移動到指定目錄,如:C:\mysql-5.7.16-winx64

3、初始化

MySQL解壓后的 bin 目錄下有一大堆的可執行文件,執行如下命令初始化數據:

cd c:\mysql-5.7.16-winx64\bin 
mysqld --initialize-insecure

4、啟動MySQL服務

執行命令從而啟動MySQL服務,有時候 要啟動兩次mysqld

# 進入可執行文件目錄
cd c:\mysql-5.7.16-winx64\bin
 
# 啟動MySQL服務
mysqld

5、啟動MySQL客戶端並連接MySQL服務

由於初始化時使用的【mysqld --initialize-insecure】命令,其默認未給root賬戶設置密碼

# 進入可執行文件目錄
cd c:\mysql-5.7.16-winx64\bin
 
# 連接MySQL服務器
mysql -u root -p
 
# 提示請輸入密碼,直接回車

輸入回車,見下圖表示安裝成功:

到此為止,MySQL服務端已經安裝成功並且客戶端已經可以連接上,以后再操作MySQL時,只需要重復上述4、5步驟即可。但是,在4、5步驟中重復的進入可執行文件目錄比較繁瑣,如想日后操作簡便,可以做如下操作。

 添加環境變量

將MySQL可執行文件添加到環境變量中,從而執行執行命令即可

【右鍵計算機】-->【屬性】--》【高級系統設置】--》【高級】--》【環境變量】--》【在第二個內容框中找到 變量名為Path 的一行,雙擊】 --> 【將MySQL的bin目錄路徑追加到變值值中,用 ; 分割】
 
如:
C:\mysql-5.7.16-winx64\bin;

如此一來,以后再啟動服務並連接時,僅需:

# 啟動MySQL服務,在終端輸入
mysqld
 
# 連接MySQL服務,在終端輸入:
mysql -u root -p

. 將MySQL服務制作成windows服務

上一步解決了一些問題,但不夠徹底,因為在執行【mysqd】啟動MySQL服務器時,當前終端會被hang住,那么做一下設置即可解決此問題:

# 制作MySQL的Windows服務,在終端執行此命令:
"c:\mysql-5.7.16-winx64\bin\mysqld" --install
 
# 移除MySQL的Windows服務,在終端執行此命令:
"c:\mysql-5.7.16-winx64\bin\mysqld" --remove

注冊成服務之后,以后再啟動和關閉MySQL服務時,僅需執行如下命令: 

# 啟動MySQL服務
net start mysql
 
# 關閉MySQL服務
net stop mysql

 用戶命令行,修改密碼增加DataBase,db1


cd c:\mysql-5.7\bin
mysqld --install
mysqld --initialize --console//有默認密碼,記得保存
net start mysql

mysql -u root -p //輸入密碼
     alter user 'root'@'localhost' identified by 'root';

     create database db1;

use db1;

 show tables;

create table tb1 (id int);

insert into tb1 values (2);

Path路徑系統變量加入c:\mysql-5.7\bin


 將libmysql.dll拷到C:\Windows\System32

然后重啟Delphi10.3

 確保MySQL服務啟動,也可以命令行啟動MySQL服務            net start mysql


 2】FDConnection1的設置

 FDConnection1.LoginPrompt: = False;//不提示登錄窗口。


 3】執行,增insert,改update ,刪除delete 語句SQL語句

procedure TForm3.Button1Click(Sender: TObject);
begin
 FDConnection1.ExecSQL('insert into tb1 values(5);');
  button1.Caption := FDConnection1.ExecSQLScalar('select MAX(id) from tb1');
end;

    3-2】執行select 查詢語句,要新加FDQuery1,設置FDQuery1的Connection為FDConnection1

FDQuery1.Open('select * from tb1 where id>5');

4】客戶端連接

https://www.cnblogs.com/happyhills/p/3723842.html

1、SQLConnection1: TSQLConnection
ConnectionName = 'MYSQLCONNECTION'
DriverName = 'MySQL'
GetDriverFunc = 'getSQLDriverMYSQL'
LibraryName = 'dbxmys.dll'
LoginPrompt = False
Params.Strings = (
'HostName=localhost'
'Database=mysqldb'
'User_Name=root'
'Password=pswd'
'MaxBlobSize=-1

ServerCharSet=utf8')
VendorLib = 'libmysql.dll'
Connected = True

2、 SQLTable1: TSQLTable
GetMetadata = False
MaxBlobSize = -1
SQLConnection = SQLConnection1
TableName = 'human'


3、DataSource1: TDataSource
DataSet = ClientDataSet1

4、DataSetProvider1: TDataSetProvider
DataSet = SQLTable1

5、ClientDataSet1: TClientDataSet
Active = True
ProviderName = 'DataSetProvider1'


6、DBGrid1: TDBGrid
DataSource = DataSource1

7、 DBNavigator1: TDBNavigator
 DataSource = DataSource1
 

8、Button1: TButton
Caption = 'Button1'
OnClick = Button1Click
需要的控件
procedure TForm1.Button1Click(Sender: TObject);
begin
  ClientDataSet1.ApplyUpdates(0);//更新
end;

最后找到兩個庫文件一同發布就可以了。

LibraryName = 'dbxmys.dll'
VendorLib = 'libmysql.dll'


5]長文本類型,及SQLITE導出,導入到MySQL,采用Navicat for SQLite,Navicat for MySQL

 

一般利用Excel的xlsx格式作為中轉,Navicat for SQLite->xlsx->Navicat for MySQL

  

L


6】遇到過的問題及解決

[FireDAC][Phys][MySQL]-306. Command [FDQuery1] text must be not empty.
-----------------------------------------------------------
FDQuery1沒有添加SQL語句
-------------------------------------------------

[FireDAC][Phys][MySQL] Unknown MySQL server host '<LOCAL>' (11004).
---------------------------
用127.0.0.1代替
---------------------------

-----------------------------------------------------------------------------------------------

[FireDAC][Phys][MySQL]-314. Cannot load vendor library [libmysql.dll,
libmariadb or libmysqld.dll]. 找不到指定的模塊。
Hint: check it is in the PATH or application EXE directories, and has x86
bitness..
---------------------------
在使用Delphi  FIREDAC連接mysql時,出現[FireDac][Phys][MySQL]-314.
Cannot load vendor library [libmysql.dll orlibmysqlld.dll]這個問題

-----------------------原因-------------------------------------------------------------------------

使用的系統是win7 64位,Mysql是64位,而c++builder是32位的。

解決辦法

在網上下載一個32位的libmysql.dll,放在C:\Windows\SysWOW64就可以了

https://blog.csdn.net/winniezhang/article/details/103726647


mysqld.exe - 系統錯誤
---------------------------
無法啟動此程序,因為計算機中丟失 MSVCR120.dll。嘗試重新安裝該程序以解決此問題。
無法啟動此程序,因為計算機中丟失 MSVCP120.dll。嘗試重新安裝該程序以解決此問題。
---------------------------
C盤里查找這兩個DLL文件,其他應用程序已自帶


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM